<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
.allen {
color: #F00;
font-weight: bold;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
function change(){
document.form1.item1.value=document.form1.item1.value;
}
function check()
{
var re = /^\d+$/;
if(!re.test(document.form1.item1.value))
{
alert("資料未填或格式錯誤(必須為數字!!!)");
document.form1.item1.focus();
return false;
}
else
{
return true;
}
}
</SCRIPT>
<form id="form1" name="form1" onSubmit="return check()" action="" method="post">
<table id = "table1 "width="10%" border="1">
<tr align="center" bgcolor="#00FF00">
<td nowrap="nowrap"><strong>不能是空的,而且要數字</strong></td>
</tr>
<tr>
<td><input type = "text" size = "5" name = "item1[]" id = "item1" value = "1" onchange="javascript:change();"></td>
</tr>
<tr>
<td colspan="28" align="right">
<input type="submit" name="submit" id="button" value="批次修改"/>
</td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1" />
</form>
以上是我可以驗證 item1 那欄的資料,只有【數字】才能按下按鈕送出資料
但是我那個檔案弄成 php 時
當 item1 會撈資料庫出來顯示時(資料列不一定,看資料庫的筆數)
假設撈出來的資料是 2 筆好了
上面的 javascript 就無法再判斷了
請問資料要怎麼改
才能讓動態的資料一樣可以去判斷呢??
謝謝
function check(form) { var re = /^\d+$/; for (var i=form.elements.length-1; i>=0; i--) { if(form.elements[i].type=='text' && !re.test(form.elements[i].value)) { alert("資料未填或格式錯誤(必須為數字!!!)"); form.elements[i].focus(); return false; } } return true; }
把你的 onchange="javascript:change();" 去掉,這段是沒用的 code。假設你select 後所產生的動態筆數是四筆,如下所示:
<pre class="c" name="code"> <table id = "table1 "width="10%" border="1">
<tr align="center" bgcolor="#00FF00">
<td nowrap="nowrap"><strong>不能是空的,而且要數字</strong></td>
</tr>
<tr>
<td><input type = "text" size = "5" name = "item1[]" value = "1"></td>
</tr>
<tr>
<td><input type = "text" size = "5" name = "item1[]" value = "1"></td>
</tr>
<tr>
<td><input type = "text" size = "5" name = "item1[]" value = "1"></td>
</tr>
<tr>
<td><input type = "text" size = "5" name = "item1[]" value = "1"></td>
</tr>
<tr>
<td colspan="28" align="right">
<input type="submit" name="submit" id="button" value="批次修改"/>
</td>
</tr>
</table>
那麼把 onsubmit 改為 onSubmit="return check(this);" ,再把 check 改為迴圈就好了:
<pre class="c" name="code">function check(form)
{
var re = /^\d+$/;
for (var i=form.elements.length-1; i>=0; i--)
{
if(form.elements[i].type=='text' && !re.test(form.elements[i].value))
{
alert("資料未填或格式錯誤(必須為數字!!!)");
form.elements[i].focus();
return false;
}
}
return true;
}
不過要注意喔~ 不管你在 Web 上做了多嚴謹的檢查,後端的 php 一定要再檢查一次。因為 Web 的檢查是 user friendly 而已,而 php 的檢查才是 security。