如何使用javascript验证表单数组输入字段

如何使用javascript验证表单数组输入字段,javascript,html,forms,Javascript,Html,Forms,我有一个输入字段,即 form name='myform' action='' method='post' onsubmit= return validate(this); / input type='text' name='sort_order[]' id='sortorder' 我想在submit按钮上使用javascript来检查所有输入是否具有整数值 {<javascript>} function validate(obj) { if(obj.element

我有一个输入字段,即

form name='myform' action='' method='post' onsubmit= return validate(this); /
input type='text' name='sort_order[]' id='sortorder' 
我想在submit按钮上使用javascript来检查所有输入是否具有整数值

{<javascript>}

 function validate(obj)
{
     if(obj.elements['sort_order[]'].length == 0)
    {
        alert(" Please Enter Value!");  
        return false;
    }   


}
{}
功能验证(obj)
{
if(对象元素['sort_order[]'].length==0)
{
警报(“请输入值!”);
返回false;
}   
}

请帮忙。谢谢

好的,您的描述有点模糊,但这里有一个解决方案

如果您的html如下所示

<!DOCTYPE html>
<html>
  <head>
    <title>Form</title>
  </head>
  <body>
    <form id = "important_form">
      <input type = "text" value = "0"/>
      <input type = "text" value = "0"/>
      <input type = "text" value = "0"/>
      <input type = "submit" value = "submit"/>
    </form>
    <script type = "text/javascript" src="validate.js"></script>
  </body>
</html>

形式
然后,您可以使用与此类似的javascript

form = document.getElementByID("important_form");
//This will execute when the user presses the submit button.
form.onsubmit = function() {
  //Loop through all form elements.
  for(var i = 0; i < form.elements.length; i++) {
    //If the form element is a text input and the value is not an integer
    if(form.elements[i].type == "text" && 
       parseInt(form.elements[i].value) != form.elements[i].value) {
      alert("Please enter an integer value"); //Replace this with whatever you want
                                              //to do with invalid results
      return false; //Stops the submit from continuing.
    }
  }
  return true;
}
form=document.getElementByID(“重要表单”);
//这将在用户按下提交按钮时执行。
form.onsubmit=函数(){
//循环遍历所有表单元素。
对于(var i=0;i
Andrew的解决方案相当不错,但是我建议使用正则表达式而不是parseInt,例如

form.onsubmit = function() {
  var re = /^\d+$/;

  for(var i = 0; i < form.elements.length; i++) {

    if(form.elements[i].type == "text" && !re.test(form.elements[i].value)) {
      ...
对于parseInt和RegExp测试,形式为2e3的整数也将返回false。它取决于函数需要的健壮性或通用性。

var k1=document.getElementsByName(“version[]);
     var k1=document.getElementsByName("version[]");
     var y1=k1.length;
     console.log(y1);
      for(var x=0;x<y1;x++)
            {
         if(k1[x].value==null||k1[x].value=="")
                {
                alert("please fill version");
              return false;
       }
         }
变量y1=k1.长度; 控制台日志(y1);
对于(var x=0;xUse
{}
按钮以在将来格式化您的代码。我处理了它,但没有修复任何语法。使用jquery验证插件:)G molvi使用
{}
(在文本编辑器中)格式化代码。您的html标记也将被打印。如果在循环和
之后添加
并返回true
=而不是
==谢谢,很快就把它打出来,直到打错:)
==
将始终为
false
,因为
form.elements[i]。value
无论如何都是字符串。您能解释一下您的答案吗?如果您使用jquery append动态追加了多个输入,那么k1是所有版本值的数组。为了检查version的所有值是否都不为null,请执行上述过程。y1给出了动态输入的数量。
     var k1=document.getElementsByName("version[]");
     var y1=k1.length;
     console.log(y1);
      for(var x=0;x<y1;x++)
            {
         if(k1[x].value==null||k1[x].value=="")
                {
                alert("please fill version");
              return false;
       }
         }