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