我正在使用 jQuery 来获得表单上输入文本字段的 onchange 效果。
假设表单有一个 id="myForm",输入文本字段有一个 id="myText";
$('#myText').change(function(){
$('#myForm').submit();
});
这样,当我更改字段然后在字段外单击时,我的表单就会提交。
但是,我希望在输入字段中插入数据后提交我的表单,而不必在输入字段之外单击(失去焦点)。
有任何想法吗?那可能吗?谢谢
我正在使用 jQuery 来获得表单上输入文本字段的 onchange 效果。
假设表单有一个 id="myForm",输入文本字段有一个 id="myText";
$('#myText').change(function(){
$('#myForm').submit();
});
这样,当我更改字段然后在字段外单击时,我的表单就会提交。
但是,我希望在输入字段中插入数据后提交我的表单,而不必在输入字段之外单击(失去焦点)。
有任何想法吗?那可能吗?谢谢
您面临的问题是您需要检测用户何时将信息输入到文本框中。更改将是当任何按键导致文本框中的新内容时,将触发他们输入的第一个字母。我认为你唯一的解决方案是在每个 keyup 事件结束时注册一个 2 秒的超时时间来提交表单,如果他们输入另一个字母,你会取消该表单。
例如:
var timedSubmit;
$('#myText').keyup(function(e) {
if (e.keyCode) == 13 { $("#myform").submit() }
clearTimeout(timedSubmit);
timedSubmit = setTimeout('$("#myform").submit()', 2000);
});
注意我也寻找了被按下的回车键(keycode 13),以便它在按下回车时简单地提交表单。
我不认为这是可能的。您总是可以使用 keyup/keydown 事件,因此当输入具有一定长度时,它会提交它。但这也没有任何意义,因为如果你打错了,你无法修复它,因为它是立即提交的。
因此,除了焦点变化之外,没有人知道你是否完成了 javascript。
有人可能会建议添加超时,但这只会缓解问题。因为不知道用户有多快,或者她/他在提交过程中被打断了。