Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在文本更改后但在提交之前运行javascript/jquery_Javascript_Jquery - Fatal编程技术网

在文本更改后但在提交之前运行javascript/jquery

在文本更改后但在提交之前运行javascript/jquery,javascript,jquery,Javascript,Jquery,我在表单上有一个输入元素和一个提交按钮 每当发生更改时,我希望在输入元素all上运行更改事件。问题是,如果最终用户更改文本并单击提交按钮,则更改事件中的代码不会运行 用户单击submit按钮后,表单立即提交(就像更改没有时间运行一样,模糊或焦点消失也会发生同样的情况) 我的控件可以放在任何窗体上,我不控制按钮的单击事件 请帮助可能是您想要使用可能是您想要使用如果您想要捕获文本框中输入的更改,请在文档中尝试此操作。准备好了吗 $("input[type='text']").change( func

我在表单上有一个输入元素和一个提交按钮

每当发生更改时,我希望在输入元素all上运行更改事件。问题是,如果最终用户更改文本并单击提交按钮,则更改事件中的代码不会运行

用户单击submit按钮后,表单立即提交(就像更改没有时间运行一样,模糊或焦点消失也会发生同样的情况)

我的控件可以放在任何窗体上,我不控制按钮的单击事件


请帮助

可能是您想要使用

可能是您想要使用

如果您想要捕获文本框中输入的更改,请在文档中尝试此操作。准备好了吗

$("input[type='text']").change( function() { 
   $("#SubmitButton").attr('disabled', 'disabled');
   // check input ($(this).val()) for validity here 
   // after text is updated..etc, enable the button
   $("#SubmitButton").removeAttr('disabled');
});

如果您想在文本框中的输入发生更改时捕获,请在document.ready中尝试此操作

$("input[type='text']").change( function() { 
   $("#SubmitButton").attr('disabled', 'disabled');
   // check input ($(this).val()) for validity here 
   // after text is updated..etc, enable the button
   $("#SubmitButton").removeAttr('disabled');
});

扩展@Aleks G的评论,您最好做的事情是触发您的更改处理,而不仅仅是
change
事件。除了
keyup
,我发现您还需要小心处理鼠标粘贴(不会触发keyup或change事件):


扩展@Aleks G的评论,您最好做的事情是触发您的更改处理,而不仅仅是
change
事件。除了
keyup
,我发现您还需要小心处理鼠标粘贴(不会触发keyup或change事件):


您可能想尝试
onkeyup
事件-捕捉实际按键。您可能想尝试
onkeyup
事件-捕捉实际按键。是的,我目前正在这样做,但是用户仍然能够更改文本,然后在不触发更改事件的情况下点击提交按钮。表单在更改运行之前提交。这就像提交已经开始,即使我可以直观地看到更改输入值,提交已经开始,因此我没有机会更新文本值。您可以禁用提交按钮,直到更改功能完成或如Aleks所述,您可以尝试onkeyup或onkeypress事件$('input[type='text']')。绑定('keypress',函数(e){})是的,我目前正在这样做,但是用户仍然能够更改文本,然后在不触发更改事件的情况下点击提交按钮。表单在更改运行之前提交。这就像提交已经开始,即使我可以直观地看到更改输入值,提交已经开始,因此我没有机会更新文本值。您可以禁用提交按钮,直到更改功能完成或如Aleks所述,您可以尝试onkeyup或onkeypress事件$('input[type='text']).bind('keypress',函数(e){})