Javascript 如果不发出警报,Ajax将无法工作
这对我来说有点疯狂。因为我的AJAX代码在没有警报的情况下不会执行。如果禁用警报,数据将不会添加到表数据的选择框中 Jquery代码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
$(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的更高版本中删除。当您开始正确使用它时,您的问题将得到解决。。。头痛是不好的。。。砍掉你的头可以解决头痛,但这不是一个好方法,不是吗?