Javascript 在文本输入的键控上调用时,在单击后重复提交
我在Javascript 在文本输入的键控上调用时,在单击后重复提交,javascript,jquery,Javascript,Jquery,我在input type='text'的keyup上发布一个带有$的表单, 问题是,在发布后,我在浏览器中的任何位置(甚至在firebug控制台上)单击$。将重复发布 实时链接: (在搜索字母后,点击按钮打开弹出窗口,例如,点击某个字母后的“m”[观看firebug控制台]) 我的脚本是这样的: $('#theform input:text').keyup(function (e) { var w = e.which; if (w < 9 || w >
input type='text'
的keyup
上发布一个带有$的表单,
问题是,在发布后,我在浏览器中的任何位置(甚至在firebug控制台上)单击$。将重复发布
实时链接:
(在搜索字母后,点击按钮打开弹出窗口,例如,点击某个字母后的“m”[观看firebug控制台])
我的脚本是这样的:
$('#theform input:text').keyup(function (e) {
var w = e.which;
if (w < 9 || w > 45 && w < 91 || w > 93 && w < 112 || w > 185)
$('#theform').submit();
});
$('#theform input:hidden').change(function () {
$('#theform').submit();
});
$('#theform').submit(function(e){
e.preventDefault();
...
$.post(...);
});
$('theforminput:text').keyup(函数(e){
var w=e,其中:;
如果(w<9|w>45&&w<91|w>93&&w<112|w>185)
$(“#表单”).submit();
});
$('#表单输入:隐藏')。更改(函数(){
$(“#表单”).submit();
});
$('#theform')。提交(函数(e){
e、 预防默认值();
...
美元。邮政(……);
});
更新:刚刚注意到没有$(“#表单输入:隐藏”)。更改(…
一切正常
更新2:显然,文本框也会触发更改,奇怪的是,我注册了input:hidden
的更改,而不是input:text
更新3:solved,看起来我应该使用input[type='hidden']
而不是input:hidden
在某些浏览器中,更改事件(仅?)当相关输入失去焦点时触发-这就是为什么当您单击页面上的其他位置时会看到另一篇文章。有关更多信息,请参阅-这是关于单选按钮的,但更改/取消焦点行为类似
至于文本框绑定到更改事件的原因::hidden
选择器不只是选择类型为hidden的输入。在这种情况下,脚本运行时文本输入在页面上不可见,因此它也被选中(“因为它被隐藏了!)
如果您只希望选择“true”隐藏输入,那么您将需要更难看的选择器$(“#表单输入[type=hidden]”)
希望这有帮助
PS:使用JS更改输入值。由于hidden类型的输入可能只能通过JS更改,因此您可能只需从更改隐藏值的任何位置调用$(“#theForm”).submit()