Javascript 为什么JQuery$.post提交两次?

Javascript 为什么JQuery$.post提交两次?,javascript,jquery,asp.net-mvc,controller,Javascript,Jquery,Asp.net Mvc,Controller,为什么这需要我两次行动?对于后台,只有当用户单击表单上的其他位置时,才使用.change。此外,当浏览器关闭时,将不会触发“更改”。因此,计时器与数据脏属性检查相结合。提前谢谢 var timeoutId; $(函数(){ var formElements=$('#myformid')。查找('input,select,textarea')。添加('[form=myformid]')。不(':disabled')。每个(函数(){ $(this).attr('data-dirty',false)

为什么这需要我两次行动?对于后台,只有当用户单击表单上的其他位置时,才使用.change。此外,当浏览器关闭时,将不会触发“更改”。因此,计时器与数据脏属性检查相结合。提前谢谢

var timeoutId;
$(函数(){
var formElements=$('#myformid')。查找('input,select,textarea')。添加('[form=myformid]')。不(':disabled')。每个(函数(){
$(this).attr('data-dirty',false).on('input propertychange change',function()){
var changedText=$(this.val();
var commentID=$(this.attr('id');
clearTimeout(timeoutId);
timeoutId=setTimeout(函数(){
//上次更改后运行1秒(1000毫秒)
//在这里保存到数据库
$.post('@Url.Action(“UpdateComment”,“CommentJournal”){
“ChangedText”:ChangedText,
“commentID”:commentID
});
$(this.attr('data-dirty',true);
}, 1000);
});
});
});
//控制器
[HttpPost]
[异名]
public ActionResult UpdateComment(string changedText,string commentID){
返回null;
}

可能是因为
input
change
事件都被激发,而
change
input
激发后激发超过1000毫秒,因为
change
仅在焦点离开控件时激发。例如:

var-timerId=0;
$(“#字段1”)。关于(“输入更改”,函数(事件){
var type=event.type;
清除超时(timerId);
timerId=setTimeout(函数(){
log(“为''+type+''触发超时”);
}, 1000);
});
在第一个字段中键入内容,至少等待一秒钟,然后从字段中取出选项卡:

第一个字段: 第二个字段:
可能是因为
input
change
事件都被激发,而
change
input
激发后激发超过1000毫秒,因为
change
仅在焦点离开控件时激发。例如:

var-timerId=0;
$(“#字段1”)。关于(“输入更改”,函数(事件){
var type=event.type;
清除超时(timerId);
timerId=setTimeout(函数(){
log(“为''+type+''触发超时”);
}, 1000);
});
在第一个字段中键入内容,至少等待一秒钟,然后从字段中取出选项卡:

第一个字段: 第二个字段:
我希望某人不是一个慢性子,否则它会提交给他们。:)@这些天来,我一直在写剧本。甚至不能停下来抓挠了。。。根据您的问题,TerryH,
更改
包含在
输入
中,此外还有其他内部事件,具体取决于输入元素类型、输入方法和/或设备。我希望有人不是慢类型,否则会提交。:)@这些天来,我一直在写剧本。甚至不能停下来抓挠了。。。根据您的问题,TerryH,
change
包含在
input
中,此外还有其他内部事件,具体取决于输入元素类型、输入方法和/或设备。TJ做得好。以下是我为发现此问题的其他人所做的更改。on('input Property change',function(){删除了此项。on('input Property change',function(){//替换为thisTJ做得很好。以下是我为发现此问题的其他人所做的更改。//。on('input Property change',function(){删除了此项。on('InputPropertyChange',函数(){//替换为