表单上的jquery onchange / onfocus

| 我正在使用jQuery在表单上获得输入文本字段的onchange效果。 假定表单具有id = \“ myForm \”,并且输入文本字段具有id = \“ myText \”;
$(\'#myText\').change(function(){
    $(\'#myForm\').submit();
});
这样,当我更改字段然后在字段外单击时,将提交我的表单。 但是,我希望在完成将数据插入输入字段后无需在输入字段之外单击(失去onfocus)后提交表单。 有任何想法吗?那可能吗? 谢谢     
已邀请:
        您面临的问题是您需要检测用户何时在文本框中输入完信息。当任何按键操作在文本框中产生新内容时,就会发生变化,这将由他们输入的第一个字母触发。我认为您唯一的解决方案是在每次键入事件结束时注册2秒钟的超时时间,以提交表格,如果他们键入另一个字母,则将其取消。 因此,例如:
var timedSubmit;

$(\'#myText\').keyup(function(e) {
    if (e.keyCode) == 13 { $(\"#myform\").submit() }
    clearTimeout(timedSubmit);
    timedSubmit = setTimeout(\'$(\"#myform\").submit()\', 2000);
});
注意我也一直在寻找被按下的回车键(键码13),以便在按下回车键时它只提交表单。     
        我认为这是不可能的。您可以始终使用keyup / keydown事件,因此,当输入的长度一定时,它将提交它。但这也没有意义,因为如果您输入错误,就无法修复,因为它会立即提交。 因此,除了焦点更改外,没有其他任何信息可以告诉您是否已完成javascript。 可能建议添加超时,但这只会缓解问题。因为无法确定用户的速度,或者在提交过程中用户被打断。     

要回复问题请先登录注册