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

时间:2011-10-06 13:50:05

标签: javascript jquery

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

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

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

我的控件可以放在任何表单上,而且我不控制按钮的点击事件。

请帮助

3 个答案:

答案 0 :(得分:1)

如果您希望在文本框中输入更改时捕获,请在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');
});

答案 1 :(得分:0)

可能是您想要使用event.preventDefault

答案 2 :(得分:0)

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

yourInput.bind('change keyup paste', function() {
    // Your code
});