ama*_*eur 1 javascript jquery plugins input
我正在编写一个jquery插件,它接受一些输入元素,如输入元素,textareas,选择html元素等,一旦在上述任何项目中按下回车键,就会触发一个输入按钮.因此,该按钮被设置为字段的默认值.这样做的任何提示?
表单中的第一个input type="submit"/ "image"/ button type="submit"是"默认"提交按钮.
如果您想要作为默认值的按钮不应首先出现在页面上,请使用例如移动它.漂浮或定位.或者,如果这不实用,只需在表单中添加一个额外的虚拟提交按钮,position: absolute; left: -lots用于使其实际上不可见.(您可以使用tabindex它来阻止它以正常的Tab键顺序出现;不要使用display: none或visibility: hidden在某些浏览器中使用,因为它会停止将该按钮视为默认值.)从form.onsubmit事件中捕获默认按钮/提交操作以及任何其他非- 他们自己的onclick事件上的默认按钮.
这是一个丑陋的黑客,而且HTML无法自然地改变默认按钮,这当然很可惜,但是你在这里利用本机浏览器行为比试图用脚本替换它更好,这比你更难认为.有很多有趣的小浏览器行为可以让你失望.
例如,如果您决定捕获Enter按键,则可能会从使用IME的用户那里获得不需要的Enter事件.输入按键input type="button"或textarea通常不应触发提交.输入按键select可能应该,除非使用键盘导航下拉菜单(并且您无法可靠地判断何时发生了这种情况).如果表单中的非字段元素被聚焦并且按下了Enter,该怎么办?您将无法捕获它,并且在某些浏览器中,这将导致表单提交,而无需代码的干预,无论如何都会以默认按钮结束.Shift-Enter或Ctrl-Enter是否表示在文本字段中提交?在文本区域?是否在复选框上输入检查,提交表单或两者?...
浏览器在这里有许多微妙的不同行为; 你会疯狂地试图掩盖每一个最后的可能性,无论你决定什么,都可能违背用户的预期行为.让浏览器的普通默认表单提交代码代替它.