몇 가지 이유 때문에 내 자바 스크립트 양식 유효성 검사가 테이블의 모든 행을 통과하지 않습니다. I는 아래의 코드로 테이블을 작성 : 은 $ USR 변수가 다른 프로세스의 단지 결과 :자바 스크립트 양식 HTML 테이블의 행 확인
<form name="myForm" action="addAccessories.php" method="post" onsubmit="return validateForm(this);">
<table border="1" id="IT">
<tr>
<th>Barcode<em>*</em></th>
<th>Current stock</th>
</tr>
<?php
for($id=1; $id<=$usr; $id++){
?>
<tr>
<td><input type="hidden" name="id[]" value="<?php echo $id; ?>" />
<input type="text" name="bar_code<?php echo $id; ?>" id="bar_code<?php echo $id; ?>" value="" /></td>
<td><input type="text" name="num_stock<?php echo $id; ?>" value="0" id="num_stock<?php echo $id; ?>"/></td>
<?php
}
?>
<tr>
<td> </td>
<td> <button data-theme="b" input type="submit" name="Submit" value="Submit">Add accessories</button></td>
</tr>
</table>
</form>
이 테이블의 행의 수이다 : 로우 = $ USR + 1
내 유효성 확인 양식 코드 :
<script type="text/javascript">
function validateForm(){
var errors = [];
for(i = 1; i < document.getElementById("IT").rows.length; i++){
var barcode = document.getElementById('bar_code'+i).value;
var des = document.getElementById('description'+i).value;
var num_stock = document.getElementById('num_stock'+i).value;
if(barcode == null || barcode == ""){
errors[errors.length] = "You must enter barcode.";
}
if(isNaN(num_stock)){
errors[errors.length] = "Current stock must be an integer";
}
if(num_stock < 0){
errors[errors.length] = "Current stock must be a positive number";
}
if (errors.length > 0) {
reportErrors(errors);
return false;
}
return true;
}
}
function reportErrors(errors){
var msg = "There were some problems...\n";
for (var i = 0; i<errors.length; i++) {
var numError = i + 1;
msg += "\n" + numError + ". " + errors[i];
}
alert(msg);
}
</script>
이 프로세스는 테이블의 첫 번째 행의 유효성을 검사 한 다음 중지합니다. 아무도 나에게 무엇이 잘못되었고 어떻게 고칠 지 보여 줄 수 있습니까? 도움을 주셔서 대단히 감사합니다.
방화범이나 기타의 오류가 있습니까? –