簡體   English   中英

Javascript多個字段的多個警報

[英]Javascript multiple alerts for multiple fields

我正在使用一個函數來檢查正則表達式的眾多輸入字段。 但是,我希望它通過所有條件,然后一次從不同的條件和輸入框輸出所有的innerHTML,而不是讓每個“ if”都返回false。 文本出現在每個框的下方。 為了給您一些提示,我要做什么。

不必將任何內容輸入到一個框中,而是可以得到一個錯誤-更正它,然后為表單中的下一個框獲取一個新的錯誤。 我希望看到所有錯誤都發生在同一按鈕單擊上。 (通過按鈕觸發功能)。

下面的代碼不會同時顯示錯誤。 有沒有辦法執行此操作而無需循環? 感覺應該是,但是我不確定如何繼續。

 function sum()
      {
          prem1 = document.formular.Uppgift1.value;
          prem2 = document.formular.Uppgift2.value;
          prem3 = document.formular.Uppgift3.value;
          prem4 = document.formular.Uppgift4.value;
          totpr = document.formular.priset.value;


          varning1 = "name";
          varning2 = "address";
          varning3 = "phone";
          varning4 = "phone number has to contain numbers";
          varning5 = "e-mail";
          varning6 = " - This one is not relevant to the input fields and should only show when thus are correct - ";



          var re = /^[\w ]+$/;


            if(!re.test(prem1)) {
            document.getElementById('texterror1').innerHTML = (varning1);
            form.inputfield.focus();
             return false;
             }

             if(!re.test(prem2)) {
            document.getElementById('texterror2').innerHTML = (varning2);
            form.inputfield.focus();
             return false;
             }

             if(!re.test(prem3)) {
            document.getElementById('texterror3').innerHTML = (varning3);
            form.inputfield.focus();
             return false;
             }

             var re = /^(?=.*[0-9])\w{1,}$/;

             if(!re.test(prem3)) {
            document.getElementById('texterror4').innerHTML = (varning4);
            form.inputfield.focus();
             return false;
             }

             if(!re.test(totpr)) {
            alert (varning6);
            form.inputfield.focus();
             return false;
             }

             var re = /^[\w ]+$/;

             if(!re.test(prem4)) {
            document.getElementById('texterror5').innerHTML = (varning5);
            form.inputfield.focus();
             return false;
             }

          else (alert ("Tack för din beställning " +prem1 + "! Här följer de uppgifter vi mottagit om dig. Adress: " +prem2 +" Tel.nr: " +prem3 +" E-post: " +prem4 +" Pris att betala: "  +Discount +" kr" ));{
          return true;
         }
      }

該代碼在相關部分進行了翻譯

而不是返回的false在每個if語句,創建一個var來處理錯誤驗證其設置為false在每個失敗的if語句。

只有在函數的最后,您才應該通過檢查var返回truefalse

我可能會使用一個失敗的變量將其設置為false ,僅在任何一項測試失敗時將其設置為true 但是我也將使用ID作為鍵,使用數組(對象)存儲錯誤消息。

我可能還會將正則表達式和原始錯誤消息存儲在數組中。 但是,使用循環來遍歷元素和數組是明智的。

暫無
暫無

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

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