Javascript 如果不发出警报,Ajax将无法工作

Javascript 如果不发出警报,Ajax将无法工作,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,这对我来说有点疯狂。因为我的AJAX代码在没有警报的情况下不会执行。如果禁用警报,数据将不会添加到表数据的选择框中 Jquery代码 $(document).ready(function () { x=0; $(document).on('click', '.add', function () { var grade = $('#txt-class-search').val(); var subgrade = $('#txt_sub_class_sear

这对我来说有点疯狂。因为我的AJAX代码在没有警报的情况下不会执行。如果禁用警报,数据将不会添加到表数据的选择框中

Jquery代码

$(document).ready(function () {
 x=0;
    $(document).on('click', '.add', function () {
        var grade = $('#txt-class-search').val();
        var subgrade = $('#txt_sub_class_search').val();
        var exam_index=$('#exam-index1').val();
        var html = '';
        html += '<tr class="append-class"  >';
        html += '<td><select id="id_'+x+'" title="stu_name" name="stu_index[]" class="form-control stu_name" style="height:35px"></select></td>';
        html += '<td><input type="text" name="marks[]" class="form-control stu_marks" style="height:35px" /><input type="hidden" name="exam_index" class="exam" value="'+exam_index+'"></td>';
        html += '<td style="text-align:center">\n\
                <button type="button" name="remove" class="btn btn-danger btn-sm remove"><span class="glyphicon glyphicon-minus"></span></button></td>\n\
                </tr>';
         $('#item_table').append(html);

        $.ajax({
            url: "../../../svr/student/exam-stu-name-search.php",
            method: "POST",
            data: {grade: grade, subgrade: subgrade},
            dataType: "text",
            success: function (data) {
                $('#id_'+x+'').html(data);
                //$('#hello').html(data);
            }
        });
      alert();
        x++;
    });

});
这是与jquery相关的HTML代码。jquery动态添加行。第一个表数据包含选择框,并使用AJAX从数据库中检索数据。它根本不需要警报。但是如果警报被删除,AJAX部分将不会被执行

<div class="row">
                <div class="col-md-2"></div>
                <div class="col-md-8">
                    <form method="post" id="marks-form">
                        <div class="table-repsonsive">
                            <span id="error"></span>
                            <table class="table table-bordered" id="item_table">
                                <thead>
                                    <tr>
                                    <th style="text-align:center">Student Name</th>
                                    <th style="text-align:center">Marks</th>

                                    <th style="text-align:center"><button type="button" name="add" class="btn btn-success btn-sm add"><span class="glyphicon glyphicon-plus"></span></button></th>
                                </tr>
                                </thead>
                                <tbody class="tbody-class">

                                </tbody>

                            </table>
                            <div align="center">
                                <input type="submit" name="submit" class="btn btn-info" value="Insert" />
                            </div>
                        </div>
                    </form>
                </div>
                <div class="col-md-2"></div>
            </div>
您可以在ajax调用中输入async:false,默认值为true

参考资料:

x++;在ajax返回之前执行,因此当$'id_u'+x+.htmldata;执行时,x有一个值,该值使'id_'+x不存在


所以,移动x++;紧跟在$'id_u'+x+.htmldata之后

你能不能把ajax调用放在一个有超时时间的超时内,告诉我它是否工作。Oskr,不,它不工作不,它不会。AJAX是异步的,你需要接受它永远不要这样做。。。将此设置为false将阻止UI线程。这将使您的页面无响应。如果你使用Nooo,也没有必要这么做,离这远点!a同步使用ajax违背了ajax的唯一目的b它已经或将在不久的将来被弃用且不受支持,但这个答案对我来说没问题。我的问题已解决。@RuwanPradeep还请记住,这是不推荐使用的,将从jQuery@RuwanPradeep的更高版本中删除。当您开始正确使用它时,您的问题将得到解决。。。头痛是不好的。。。砍掉你的头可以解决头痛,但这不是一个好方法,不是吗?