正如Nimnio引用的答案所说,这特定于HTML和浏览器。
我认为使用PrimeFaces时这种行为是不合适的。对于这样的所有表单,我都希望全局禁用它:
$('form').off('keypress.disableAutoSubmitOnEnter').on('keypress.disableAutoSubmitOnEnter', function(event) { if (event.which === $.ui.keyCode.ENTER && $(event.target).is(':input:not(textarea,:button,:submit,:reset)')) { event.preventDefault(); }});该
target检查允许其他默认行为起作用,例如通过按Enter键在文本区域中添加换行符。
为了考虑新添加的表单,您需要在每个AJAX请求之后调用上述脚本。有多种方法可以执行此操作,例如
<script>在中的
p:outputPanelautoUpdate="true"或在
p:ajaxStatus的
oncomplete回调中调用函数。
如果由于某种原因该解决方案不合适,请考虑本地化的解决方案:
<h:form onsubmit="return false;">
返回
false此处将禁用非AJAX默认提交。



