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