簡體   English   中英

javascript-如何防止自動提交表單

[英]javascript - how to prevent automatic form submission

我面臨的一個問題是,我的網頁上有一個接收條形碼輸入的文本字段,條形碼由條形碼讀取器設備寫入該字段。

現在發生的是,條形碼閱讀器在字段中寫入條形碼后以某種方式自動提交表單。 我想阻止該提交。

我嘗試通過使用preventDefault()來執行此操作,但仍然沒有成功。 這是代碼:

<form role="form" method="post" action="IssueBook" id="issueBookForm">
<input type="text" value="" required name="empId" id="empId" 
                            onblur="getEmpData(this)" />
<input type="text" value="" required name="barcode" id="barcode" 
                            onblur="checkBookExistence(this); checkEligibilityForUser();" />
</form>

var issueBookForm = document.getElementById("issueBookForm");
            issueBookForm.addEventListener('submit',    function(event) {
                event.preventDefault();
            });
            document.getElementById("submitButton").addEventListener('click',function(event){
                var choice = confirm('Are you sure you want to issue this book ?? ');
                if(choice === true){
                    issueBookForm.submit();
                }
                else false;
            });

注意 :我只需要支持具有addEventListener瀏覽器。 我知道以上內容不適用於舊版IE或兼容模式下的IE,這很好。 我正在Chrome瀏覽器中進行測試。

您可以使用onsubmit事件來調用JavaScript,在其中可以通過返回true和false來阻止提交

好吧,我在我的朋友的幫助下解決了這個問題,這可能不是最好的解決方案,但它可以起作用:

var x, inputs = document.querySelectorAll("input[type='text']");
        for (x in inputs) {
            if (inputs[x] instanceof Element) {
                inputs[x].addEventListener('keyup', function(event) {
                    if (event.keyCode == 13)
                        return false;
                });
            }
        }

這有助於防止在任何文本字段上按Enter時提交表單,而我所做的另一件事是將輸入類型從“提交”更改為“按鈕”。

暫無
暫無

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

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