在基於 Web 的應用程式中,由 ENTER 鍵觸發的無意的表單提交可能會很麻煩。本指南提供了防止此類不良行為的解決方案。
可以為表單實作自訂按鍵處理程序,以攔截ENTER 按鍵並阻止所有表單提交
function checkEnter(e) { e = e || event; var txtArea = /textarea/i.test((e.target || e.srcElement).tagName); return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13; } document.querySelector('form').onkeypress = checkEnter;
較現代的元素使用事件委託的方法可用於處理ENTER 按下。此方法涉及捕獲文件層級的事件並檢查最接近的表單祖先。只有具有 data-enter-for-submit 屬性的指定元素才會觸發 ENTER 上的表單提交。
document.addEventListener(`keypress`, handle); function handle(evt) { const form = evt.target.closest(`#testForm`); if (form) { if (evt.target.dataset.enterForSubmit) { if (evt.key === `Enter`) { evt.preventDefault(); return logClear(`won't submit "${evt.target.value}"`); } return true; } } }
以上是如何防止 Web 應用程式中按 ENTER 按鍵時提交不需要的表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!