【问题标题】:how to use Ajax to send query by this method如何通过此方法使用 Ajax 发送查询
【发布时间】:2015-07-03 06:41:26
【问题描述】:

我无法以这种方式发送 Ajax 请求 找到了适合该网站的表格 https://github.com/codrops/MinimalForm 并尝试在不刷新页面的情况下发送数据 我究竟做错了什么?需要 form.submit(){} 之类的东西吗?

表格

<form id="theForm" class="simform" autocomplete="off">
                <div class="simform-inner">
                    <ol class="questions">
                        @foreach($answers as $answer)
                    <li>
                        <span><label for="q">{{ $answer->answer }}</label></span>
                        <label class="checkbox" for="checkbox1" style="display:none;">
                            <input type="checkbox" value="{{$answer->id}}" id="checkbox1" checked name="id"  data-toggle="checkbox" >
                        </label>
                        <input id="q" name="word" type="text"/>
                    </li>
                @endforeach
                    </ol><!-- /questions -->
                    <button class="submit" type="submit">Send answers</button>

            </form><!-- /simform -->    

js

<script src="/tests/js/classie.js"></script>
<script src="/tests/js/stepsForm.js"></script>
<script>
    var theForm = document.getElementById( 'theForm' );

    new stepsForm( theForm, {
        onSubmit : function( form ) {
            // hide form
            classie.addClass( theForm.querySelector( '.simform-inner' ), 'hide' );
            var query = "word=" + $("input[name=word]").val() +
                    "&id=" + $("input[name=id]").val();
            $.ajax({
                type: "POST",
                url : "http://example.com/frontend/tests/elementary-2/check",
                data : query,
                cache: false,

                dataType : "json",

                success : function(msg){console.log(msg);

                    if (msg['msg'] == true){
                        sweetAlert("Good job!", "some", "success");
                    }else {
                        sweetAlert("Oops...", "some", "error");
                    }

                }

            });

        }
    } );
</script>

【问题讨论】:

    标签: javascript jquery ajax blade


    【解决方案1】:

    在表单中输入 return false

    <form id="theForm" class="simform" autocomplete="off" onsubmit="return false;">
    

    您的 ajax 实际上正在执行,但默认情况下表单也在发出非 ajax 请求。 return false 将阻止表单以默认行为提交。

    【讨论】:

    • 这并没有解决问题,事实是我请教如何正确提交表单,对不起我的英语((
    • 我已经删除了onsubmit="return false;" 数据只发送到最后一个INPUT 怎么发送每次从INPUT按回车数据?
    【解决方案2】:

    好的,如果您询问如何通过 ajax 提交表单,那么这里是一个示例-

            $(document).on("click", ".submit", function () {
                 $.ajax({
                        type: "POST",
                        url: "your/url",
                        data: {your:data},
                        success: function(data) {
    
       //and from data parse your json data and show error message in the modal
                        var obj = $.parseJSON(data);
                            if(obj!=null)
                                {                             
                                    $('#mssg').html(obj['message']);
                                }
                        }});
                     });
    

    【讨论】:

    • 你可能误会了我,我知道如何通过 Ajax 发送数据,在这种情况下我要求理事会发送请求。你看过代码吗?
    • 实际上你让你的问题有点混乱,你问你不能发送一个ajax请求。你有什么错误吗?
    • 这是问题,也不是错误没有发生。在这种形式中,当您按下回车键时,第二个点在第二个点之前,我需要发送 INPUT 的值进行验证并返回 true 或 false
    • 现在告诉我你从哪里找到var query = "word=" + $("input[name=email]").val() + "&amp;id=" + $("input[name=id]").val(); 在你的表单中没有名为 email 和 id 的输入字段!
    • email 怎么办?抱歉,错字,但默认情况下 id 在那里检查
    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多