Javascript多个字段的多个警报

Javascript multiple alerts for multiple fields

本文关键字:字段 Javascript      更新时间:2023-09-26

我正在研究一个函数,我将用正则表达式检查许多输入字段。但是,我不想让它对每个"if"返回false,而是想让它遍历所有条件,然后一次从不同的条件和输入框输出所有innerhtml。文本出现在每个框的下面。给你一个提示,我想要什么。

为了得到一个错误,而不是必须在一个框中输入一些东西-纠正它,然后在表单的下一个框中得到一个新的错误。我想看到,所有的错误发生在同一按钮单击。(功能触发从一个按钮)。

下面的代码不会同时显示错误。有没有办法不用循环来执行这个?感觉应该是这样,但我不确定如何继续。

 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;
         }
      }

代码在相关部分进行了翻译

不是在每个if语句中返回false,而是创建一个var来处理错误验证,在每个失败的if语句中将其设置为false

只有在函数结束时,您应该通过检查var .

返回truefalse

我可能会使用单个变量failed将其设置为false,仅在任何一个测试失败时将其设置为true。但是我也会使用一个数组(一个对象)来存储错误消息,使用id作为键。

我可能还会将正则表达式和原始错误消息存储在数组中。使用循环遍历元素和数组是明智的。