【问题标题】:How to display the string content of this array all at once using javascript?如何使用javascript一次显示这个数组的字符串内容?
【发布时间】:2016-03-17 02:54:04
【问题描述】:

我正在使用它进行表单验证。当出现错误时我调用这个函数并将它作为参数发送一个字符串。

var errList = new Array();
    function aerrorList(error){
        errList.push(error);
        for (var i=0; i < errList.length; i++){
            alert(errList[i]);
        }
    }

这是验证检查之一:

function lNameValidate() {
        var lName = document.getElementById("lastname");
        if (lName.value.length < 20 && /^[a-zA-Z0-9- ]*$/.test(lName.value)){
            stNumValidate();
        } else {
            lName.style.border = "red";
            errorList("Invalid lName Format");
            stNumValidate();
        }
    }

当前数组(使用警报)在多个弹出框中显示错误,每个弹出框中只有 1 个错误字符串。我希望它显示 1 个警报,该警报将在列表中显示所有错误,类似于以项目符号的方式输出它。

【问题讨论】:

  • 是的,有可能
  • 你能告诉我怎么做吗?
  • 您是否尝试过将警报置于循环之外并将循环中获得的值存储在类似于此的临时容器中?变种温度=“”; for (var i=0; i

标签: javascript arrays validation


【解决方案1】:

您可以将所有错误附加到一个var,然后显示它:

function aerrorList(error){ errList.push(error); var errors = ""; for (var i=0; i < errList.length; i++){ errors += errList[i] + "\n"; } alert(errors); }

【讨论】:

  • 或者只是alert(errList.join('\n'))
  • 我不会提醒一次。因为每次调用 aerrorList() 时,它都会再次警告旧错误。想想他们每个人都调用 aerrorList() 的验证函数。我认为必须是函数 pushError(error){errList.push(error);} 然后是 showErrors(){alert(errList.join("\n"));}
【解决方案2】:

您可以在数组上使用join 方法,这是一个示例:

errors=['error1','error2','error3']

这里,a 是你的错误列表的数组,现在你可以像这样使用任何你想要的东西将它们粘合在一起:

error_string=error.join("\n*")

终于可以发出警报了:

alert(error_string)

【讨论】:

    【解决方案3】:

    试试这个:

        var Errors = {
          messages: [],
          push: function(message) {
              this.messages.push(message);
          },
          alert: function() {
              alert(this.messages.join("\n"));
          },
          showInElement: function(element) {
              element.innerHTML = this.messages.join('<br/>');
          },
          clear: function() {
              this.messages = [];
          }
        }
    
        var age = 1;
        if(age < 18) {
          Errors.push("Come back when You 18+");
        }
    
        var name = "Jack";
        if(name != "John") {
          Errors.push("You're not John!");
        }
    
        Errors.alert();
    
        var element = document.getElementById('content');
        Errors.showInElement(element);
    
        Errors.clear();
    &lt;div id="content"&gt;&lt;/div&gt;

    【讨论】:

      【解决方案4】:

      所以我最终使用了这个:

          var errList = new Array();
          function errorList(error){
              errList.push(error);
          }
      
          function showErrors() {
              alert(errList.join("\n"));
          }
      

      如果 errList 长度 > 1,我只是在最后一次验证时调用 showErrors:

      function emailRestrict() {
              var eVal = document.getElementById("email").value;
              var atPos = eVal.indexOf("@");
              var dotPos = eVal.lastIndexOf(".");
              if (atPos < 1 || dotPos < atPos || dotPos >= eVal.length) {
                  errorList("not valid email");
                  if (errList.length > 1){
                      showErrors();
                  }
              return false;
              }
              else {
                  if (errList.length > 1){
                      showErrors();
                  }
                  return true;
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2020-10-10
        • 2022-08-12
        • 2020-08-20
        • 1970-01-01
        • 1970-01-01
        • 2012-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-12-05
        相关资源
        最近更新 更多