如果没有发出警报,Ajax就无法工作[重复]

问题描述 投票:-1回答:2

这对我来说有点疯狂。因为我的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>
javascript jquery html ajax
2个回答
1
投票

x++;在你的ajax返回之前执行,所以当$('#id_'+x+'').html(data);执行时,x有一个使'#id_'+x不存在的值。

所以,在x++;之后移动$('#id_'+x+'').html(data);


-1
投票

你可以把async: false放在你的ajax调用中,默认值是true

参考:http://api.jquery.com/jQuery.ajax/#example-3

© www.soinside.com 2019 - 2024. All rights reserved.