我有jquery代码使用ajax发送请求,但是在成功函数keypress再次触发后这是我的代码
$(".id_sort").bind('keypress',function(e){
if (e.which == 13){
var index_fix = [];
var index_ori = [];
for (i=0;i < $("tbody tr").length; i++){
index_ori.push(i);
}
$(".id_sort").each(function(){
index_fix.push(Number($(this).val())-1);
});
if (JSON.stringify(index_fix) !== JSON.stringify(index_ori)){
data = { key : 'sort', index : JSON.stringify(index_fix)};
$.ajax({
url : "/ajax/",
data : data,
type : "POST",
cache : false,
success : function (resp){
$(".data").html(resp);
// what should i do here..keypress enter doesn't work in second time
}
});
}
else {
alert("data sama coy");
}
}
});
答案 0 :(得分:0)
检查浏览器控制台是否存在JavaScript错误。我怀疑在第一次按键后,JavaScript可能会抛出错误并且不再运行此代码。
如果类.id_sort的任何字段除了空白之外还有任何内容,当你转换为数字时你将获得NaN并且当你将值传递给服务器时,它是否会接受NaN值?
答案 1 :(得分:0)
听起来像你绑定的dom节点可能会被$(".data").html(resp);
电话替换/覆盖。绑定到事件仅适用于已在dom中的节点。
因此,如果是这种情况,那么您需要在更换dom后重新绑定成功回调,或者可以将click事件绑定到更高的节点。例如:$(".data").on("keypress", ".id_sort", function() { ... });