jquery post going in loop
本文关键字:loop in going post jquery | 更新日期: 2023-09-27 17:54:21
我有这个代码,我用它来发布一个消息在'Enter'键按下,但它正在循环,而不是发布一个消息,它发布它多次随机
这是我在<input id='txtsendmsg" + i + "' placeholder='"Write a comment...'" onkeypress='PostMessage(event,"+i+");' class='msgtxt'></input>
上调用的函数,任何帮助都会很感激。
function PostMessage(event,key) {
$('#txtsendmsg'+key).on("keypress", function (e) {
if (e.which == 13) {
var msgid = $(this).siblings('.msgid').val();
var msgtxt = $(this).val();
$.ajax({
url: "student_post_login.aspx/funPostMessage",
data: 'postd=' + "Y" + '&msgid=' + msgid + '&msgtxt=' + msgtxt,
success: function (data) {
if (data) {
displayData();
}
},
failure: function (response) {
alert("Faliure:");
},
error: function (response) {
alert(response);
}
});
e.preventDefault();
}
});
}
问题在于每次键入输入字段中的a键时都附加了一个事件处理程序。按两次键,发送两次请求,按三次;三个,以此类推。
尝试只使用jQuery而不是onclick
属性来分配处理程序:
<input id='txtsendmsg" + i + "' placeholder='"Write a comment...'" class='msgtxt' />
$('.msgtxt').on('keypress', function (e) {
var $el = $(this);
if (e.which == 13) {
var msgid = $el.siblings('.msgid').val();
var msgtxt = $el.val();
$.ajax({
url: "student_post_login.aspx/funPostMessage",
data: 'postd=' + "Y" + '&msgid=' + msgid + '&msgtxt=' + msgtxt,
success: function (data) {
if (data) {
displayData();
}
},
failure: function (response) {
alert("Faliure:");
},
error: function (response) {
alert(response);
}
});
e.preventDefault();
}
});