我在表单上有一个输入元素和一个提交按钮。
我想在发生更改时在输入元素上运行change事件。问题是如果最终用户更改文本并单击提交按钮,则更改事件中的代码不会运行。
用户点击提交按钮后,表单会立即提交(就像更改没有时间运行一样,模糊或焦点也会出现相同的情况)。
我的控件可以放在任何表单上,而且我不控制按钮的点击事件。
请帮助
答案 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
});