【问题标题】:html send array inside form onsubmithtml在表单onsubmit中发送数组
【发布时间】:2020-06-02 11:54:00
【问题描述】:

我想知道是否可以通过表单内的 onsubmit 发送 javascript 函数的值数组。 假设我在表单中有五个输入,并且在表单中我有:

onsubmit="return checkvalues(value1, value2, value3, value4, value5)"

所以 checkvalues() 函数可以验证输入的值。 但我想知道如何不发送 5 个值而是发送一个数组,例如:

onsubmit="return checkvalues(array(value1, value2, value3, value4, value5))"

是否有可能让Javascript函数将“someArray”识别为数组?:

function checkvalues(array someArray) {
    somehow_loop_through_array someArray
}

【问题讨论】:

    标签: javascript html arrays validation


    【解决方案1】:

    提交数组中的值并定义函数以使其接受一个参数。在 JavaScript 中的函数定义中不必指定该参数为数组,只需将参数作为函数内部的数组处理即可。

    onsubmit="return checkvalues([value1, value2, value3, value4, value5])"
    
    function checkvalues(someArray) {
      for(var i = 0; i < someArray.length; i++) {
        // do something with the array elements
      }
    }
    

    【讨论】:

      【解决方案2】:

      你可以检查给定的参数是否是一个数组并循环遍历它:

      function checkvalues(someArray) {
        // check if someArray is an array (if its for sure an array you can skip this part of course)
        if(someArray.isArray()){
          // loop array ES5 way
          someArray.forEach(function (item, index) {
            // do the check for each item here
          });
          
          //loop array old way
          for (var i = 0; i < someArray.length; i++) {
            // do the check for each item here with someArray[i]
          }
        }
      }

      我添加了两种可能的方法。 forEach 是“更干净”的版本,但不适用于旧版浏览器。所以如果你必须支持旧浏览器,你必须使用第二个选项

      【讨论】:

        【解决方案3】:

        你可以像这样发送值

        onsubmit="return checkvalues(value1, value2, value3, value4, value5)"
        

        您将能够使用扩展运算符接收函数中的值

        function checkvalues(...values){
          console.log(values.length);
        }
        


        您也可以通过以下方式接收

        function checkvalues(v1,v2,v3,v4){
          console.log(arguments[0]);
        }
        

        【讨论】:

          猜你喜欢
          • 2011-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-25
          • 2012-07-31
          • 1970-01-01
          相关资源
          最近更新 更多