如何解决表单上的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。
可能建议添加超时,但这只会缓解问题。因为无法确定用户的速度,或者在提交过程中用户被打断。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。