我面临或多或少同样的问题描述here(即我有被点击编程时,一个标签后获得焦点提交输入项目,但重点处理程序也被调用时用户点击按钮,导致双重提交)。链接帖子中建议的解决方案工作,但我需要一个不需要jQuery的解决方案。有没有人对此有过一些想法?请注意,我需要按钮的点击行为保持不变,因为它绑定到一个asp.net服务器端事件。谢谢!防止专注于普通的JavaScript按钮点击
3
A
回答
2
你要防止从形式提交,以便添加事件侦听器,然后你想怎么JavaScript来处理提交表单代码。还要问你如何在不依赖任何框架的情况下如何胜任代码编写的问题! :-)
一些粗糙的代码给你如何防止提交表单的想法...
if (window.addEventListener)
{
forms[i].addEventListener('submit',function(e) {e.preventDefault(); eval(id_forms[e.target.id]+'();');},false);
}
else if (window.attachEvent)
{
forms[i].attachEvent('onsubmit',function(e,f) {e.returnValue=false; eval(id_forms[e.srcElement.id]+'();');});
}
2
我结束了与具有使用keyUp和的keyDown处理程序中,我设置/取消一个isKeyPressed变量。这是我的理解是,按Tab键,当这种情况发生的事件的顺序如下:
- 的keyDown
- 重点虎子
- 使用keyUp
因此,在焦点事件处理程序我检查重点是通过制表(即如果isKeyPressed设置为true)并在那里提交表单。否则,如果在click()后获得焦点,isKeyPressed将不会被设置为true,并且我不会以编程方式触发表单提交。
+0
事件是基于DOM,而不是从JavaScript中,可以在这里找到所有地方的好名单:http://en.wikipedia.org/wiki/DOM_events – John
相关问题
- 1. 防止EditText专注于下一个按钮点击软键盘
- 2. 专注于单击按钮
- 3. Select2:防止Select2下拉专注于点击
- 4. Javascript:点击注入按钮?
- 5. 如何使editText专注于Android中的按钮点击?
- 6. jQuery专注于点击按钮的警报框
- 7. 按钮如何专注于点击在Android
- 8. Javascript按钮,防止鼠标双击
- 9. 防止快速提交按钮点击?
- 10. 防止多个按钮点击
- 11. 如何防止按钮点击
- 12. Android - 防止按钮点击PopupWindow以外
- 13. jQuery防止回发点击按钮
- 14. 防止页面刷新按钮点击
- 15. 专注于单选按钮
- 16. 防止按键点击按钮点击即使在vb6中
- 17. iOS:防止点击通过禁用的工具栏按钮
- 18. 防止Silverlight的datagrid选择从点击按钮点击改变?
- 19. 防止用户FOM重新登录注销后通过点击后退按钮
- 20. 普通mysql准备语句防止注入攻击?
- 21. 防止窗口滚动低于折叠,直到按钮点击
- 22. 按钮点击后防止通知抽屉崩溃
- 23. 通过箭头键点击防止按钮被聚焦
- 24. 按钮点击XSS JavaScript注入
- 25. 防止表TR点击排在点击按钮
- 26. JavaScript:如何防止双击按钮或禁用按钮
- 27. Javascript阻止ASP.NET按钮点击
- 28. 的JavaScript/jQuery的禁止提交点击按钮,防止重复提交
- 29. 防止点击通过格
- 30. 无法专注于FragmentActivity中的按钮
感谢您的回答。该解决方案看起来不错(可能减去使用eval :))。我已经实施了另一种方法,我忘了在这里写下来,所以我会这样做,但要给你答案。 –
我使用eval谨慎,这段代码实际上是我如何防止从形式提交我的网站上这样我就可以了JavaScript处理他们,而不是一部分。我仍然处理JavaScript禁用时提交的表单,并在启用JavaScript时通过追加?ajax = 1来确定差异。 – John