动态创建的文本框上的javascript验证

动态创建的文本框上的javascript验证,javascript,forms,input,validation,Javascript,Forms,Input,Validation,在表单中,通过单击“添加”按钮动态创建文本框,以便在新行中创建文本框。现在,我的问题是验证动态创建的文本框,以便在通过单击“提交”按钮提交表单时,如果任何文本框为空,则会显示一条消息。请帮助我 编辑 <html> <head> <SCRIPT language="javascript"> function addRow(tableID) { var table = document.getElementById(tableID)

在表单中,通过单击“添加”按钮动态创建文本框,以便在新行中创建文本框。现在,我的问题是验证动态创建的文本框,以便在通过单击“提交”按钮提交表单时,如果任何文本框为空,则会显示一条消息。请帮助我

编辑

  <html>
   <head>

  <SCRIPT language="javascript">
   function addRow(tableID) {

    var table = document.getElementById(tableID);

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);
    var element1 = document.createElement("input");
    element1.type = "text";
    cell1.appendChild(element1);
 }

   </SCRIPT>
   </head>


   <body>


    <form onSubmit="return validateFormOnSubmit(this)">
   <INPUT type="button" value="Add More Symptom " onClick="addRow('dataTable')" />


    <TABLE id="dataTable" >
      <TR>

        <TD > 
          <INPUT type="text" name="symp[]" /> 
         </TD>
       </TR>
    </TABLE>
   <input type="submit" value="Submit" name="ADD_SUBMIT">
   </form>


  </body>    
  </html>

函数addRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“text”;
单元格1.附加子元素(元素1);
}
上面是在新行中添加新文本框的脚本。
现在我要求当点击submit按钮时,每个文本框都应该在客户端验证是否为空。文本框中输入的值不应消失,空文本框的数量应相同。

在表单的提交事件中,您只需收集表单中找到的所有输入文本框,并将其传递给验证函数

将此代码放在页面的
部分

//This function here is only a cross-browser events stopper
stopEvent = function(ffevent)
{
   var current_window = window;

   if(current_window.event) //window.event is IE, ffevent is FF
   {
      //IE
      current_window.event.cancelBubble = true; //this stops event propagation
      current_window.event.returnValue = false; //this prevents default (usually is what we want)
   }
   else
   {
      //Firefox
      ffevent.stopPropagation();
      ffevent.preventDefault();
   };
}

function validateAllInputBoxes(ffevent)
{
   var inputs = document.getElementsByTagName('input');
   for(var i = 0; i < inputs.length; ++i)
      if(inputs[i].type === 'text')
         //@Satish, maybe below you wrote by mistake if(inputs[i].value = '') thus all input elements values get cleared out.
         if(inputs[i].value === '') 
         {
            alert("form could not be sent one input text field is empty");
            stopEvent(ffevent);
         }
}

1.验证文本框客户端还是服务器端?2.显示一点代码可能会阻止我们回复。3.如果框的客户端验证没有太大变化,则它们可能是动态创建的,也可能不是动态创建的。此处动态创建的文本框必须在客户端进行验证。上面的代码正在工作,但当输入警报框时,文本框中的旧值不应消失(此处消失)创建的文本框数量应相同(此处所有文本框减少为一个)。请尝试在编辑的代码中显示它。1)将taht甚至不跨浏览器替换为(与我编写的方式完全相同),然后重试!2)没有理由用您/我的代码清除旧值。除非阅读我在代码中添加的注释,否则我们不会接触值文本。感谢您对代码稍加修改,我得到了我需要的结果。
onsubmit="validateAllInputBoxes(event);"