Javascript - 验证onSumbit动态输入

时间:2013-11-15 23:19:23

标签: javascript php jquery verify

我有一个动态<input type="text" />取决于值 - 来自数据库 - 的表单,如下所示:

<form id="data" name="data" method="post" action="..." onSumbit="return VerifyFields()">

<?php
   for ($x=0; $x<count($List); $x++) {
?>

<tr>
   <td> <?php echo $description; ?>  </td>
   <td> <input type="text" name="txt_glo_<?php echo $x; ?>" id=""txt_glo_<?php echo $x; ?> />  </td>
</tr>

<?php
   }
?>

</form>

使用Javascript:

<script type="text/javascript>

   function VerifyFields(){

      var glo = $("#txt_glo_%").val();
      if (glo == ""){
        alert("EMPTY");
        return false;
      } else {
         return true
      }

   }

</script>

在我提交表单之前,我需要在javascript中验证是否为txt_file_<?php echo $x; ?> == " ",但我不知道该怎么办?

谢谢你的回答。问候

2 个答案:

答案 0 :(得分:1)

这是一个jQuery解决方案(看起来就像你已经在使用jQuery一样):

var glos = $("input[id^=txt_glo_]");
for(var i=0;i<glos.length;i++){
    var val=$(glos[i]).val();
    if(val==""){
        alert("EMPTY");
        return false;
    }
}
return true;

这将遍历每个输入,其id以txt_glo_开头,并检查它的值。

有关属性选择器的详情,请参阅this MDN article

这是一个有效的演示:JSFiddle

答案 1 :(得分:1)

有多种方法可以实现这一目标。我更喜欢的是给所有字段提供相同的类,例如validateNotEmpty

<input class="validateNotEmpty" type="file" ...
<input class="validateNotEmpty" type="text" ...

您甚至可以将此用于循环外部设置的所有字段。现在,您需要在提交时检查.each元素(假设您使用的是jQuery)。

$('form#data').submit(function(){
    var allValid = true;
    $('input.validateNotEmpty').each(function(){
        if ($(this).val() == "" && allValid) {
            alert("please fill in all required fields");
            allValid = false;
            return; // break .each()
        }
    });
    //other validation
    return allValid;
});

Demo