如何获取文本框[script]的值表单名称[]

时间:2014-11-16 11:07:27

标签: javascript html arrays

我的HTML代码

<html>
    <form name='form1' method='post' action='add.php' onsubmit='return fnSubmit();'>
    <div id='textfield'>
       <div>
          <input type='text' name = 'name[]' id = 'name1' size = '50'>
       </div>
       <div>
          <input type='text' name = 'name[]' id = 'name2' size = '50'>
       </div>
       <div>
          <input type='text' name = 'name[]' id = 'name3' size = '50'>
       </div>
       <div>
          <input type='text' name = 'name[]' id = 'name4' size = '50'>
       </div>
       <div>
          <input type='text' name = 'name[]' id = 'name5' size = '50'>
       </div>
    </div>
    <div>
    <input type='submit' value='sendvalue'>
    <input type='button' value='+' id='submit1'>
    </div>
    </form>
    </html>

用于检查空文本框的脚本,如果为空警报并将焦点放在该文本框

 <script language='javascript'>
       function fnSubmit(){
        if(document.form1.name[].value == "")   {
                    alert("please enter value");
            document.form1.name[].focus();
            return false;
        }
    document.form1.submit();
    }   
    </script> 

但它不起作用数组

我使用带按钮的添加文本框

我有使用id进行自动完成搜索的问题

2 个答案:

答案 0 :(得分:0)

PS:改为使用required属性。然后在表单提交中搜索所有必需元素并循环遍历字段

&#13;
&#13;
   function fnSubmit() {
     var requiredNodes = document.querySelectorAll("form[name=form1] [required]");
     for(var i = 0; i < requiredNodes.length; i++){
       if (!requiredNodes[i].value) {
         alert("please enter value");
         requiredNodes[i].focus();
         return false;
       }
     }
     document.form1.submit();
   }
&#13;
<form name='form1' method='post' action='add.php' onsubmit='return fnSubmit();'>
<div id='textfield'>
   <div>
      <input type='text' name = 'name[]' id = 'name1' size = '50' required>
   </div>
   <div>
      <input type='text' name = 'name[]' id = 'name2' size = '50' required>
   </div>
   <div>
      <input type='text' name = 'name[]' id = 'name3' size = '50' required>
   </div>
   <div>
      <input type='text' name = 'name[]' id = 'name4' size = '50' required>
   </div>
   <div>
      <input type='text' name = 'name[]' id = 'name5' size = '50' required>
   </div>
</div>
<div>
<input type='submit' value='sendvalue'>
<input type='button' value='+' id='submit1'>
</div>
</form>
&#13;
&#13;
&#13;

如果required属性存在,您编写的javascript代码默认情况下是浏览器剂量的天数。因此,对于较新的浏览器,fnSubmit不会有任何用处,除非您启用原生表单验证(具有novalidate属性)并且您想自己执行此操作

答案 1 :(得分:0)

要逐字回答问题,请使用:

<form [...] onSubmit="return fnSubmit(this)">

和...

function fnSubmit(theForm) {
    var textboxes = theForm.getElementsByName("name[]"),
        l = textboxes.length, i;
    for( i=0; i<l; i++) {
        if( textboxes[i].value == "") {
            alert("Please enter value");
            textboxes[i].focus();
            return false;
        }
    }
}

然而,这是&#34; 1990年代&#34;这样做的方式。这些天,你做:

<input type="text" [...] required />

浏览器将为您处理,无需JavaScript。