繁体   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