簡體   English   中英

如何在Opera 11中使用HTML5客戶端表單驗證時阻止表單提交?

[英]How to prevent form submission while using HTML5 client-side form validation in Opera 11?

如何在Opera 11中使用HTML5客戶端表單驗證時阻止表單提交?

這是一個示例測試頁面:

 <section> <h2>Test</h2> <form> <input type="text" name="test" id="test" required/> <input type="submit" value="Test" /> </form> </section> 

驗證在Opera 11中有效,但在輸入值后單擊按鈕時,瀏覽器會提交表單。

我希望瀏覽器始終保留在網頁上,這對於僅有客戶端的腳本而言,只適用於沒有服務器的本地硬盤驅動器。

當我添加return false; 或者嘗試阻止表單提交,驗證不再有效。

Opera 11.10 Build 2092

編輯:

感謝robertc的解決方案,我得到了它的工作。 這是沒有jQuery的測試頁面。

  (function() { "use strict"; window.addEventListener("load", function() { document.getElementById("testForm").addEventListener("submit", function(event) { event.target.checkValidity(); event.preventDefault(); // Prevent form submission and contact with server event.stopPropagation(); }, false); }, false); }()); 
 <section> <h2>Test</h2> <form id="testForm"> <input type="text" name="test" id="test" required/> <input type="submit" value="Test" /> </form> </section> 

好的, 試試這個 表格基本上和以前一樣:

<section>
    <h2>Test</h2>
    <form id="form">
        <input type="text" name="test" id="test" required/>
        <input type="submit" value="Test"/>
    </form>
</section>

然后將submit事件綁定到一個調用checkValidity()方法的函數:

function manualValidate(ev) {
    ev.target.checkValidity();
    return false;
}
$("#form").bind("submit", manualValidate);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM