我有一个表单,它获得动态<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; ?> == " "
,但我不知道该怎么做?
谢谢你的回答。问候
有多种方法可以实现此目的。我更喜欢的是为所有字段提供相同的类,例如 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;
});
演示
这是一个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_
开头的输入,并检查其值。
有关属性选择器的更多信息,请参阅此 MDN 文章。
这是一个工作演示:JSFiddle。