我想從Javascript-Coder.com實現JavaScript表單驗證腳本,可以找到here。如何獲取表單驗證腳本以使用數組?
我有工作表單上的元素,但我想知道如何讓它與數組一起工作。具體來說,我有一個網頁here,用戶可以添加行的表單。然後,我有以下形式:
<form method="post" name="booking" id="booking" action="bookingengine.php">
<fieldset>
<h2>Waged/Organisation Rate</h2>
<p>
<input type="text" name="name[]" id="name">
<input type="text" name="email[]" id="email">
<input type="text" name="organisation[]" id="organisation">
<input type="text" name="position[]" id="position">
</p>
<p><span class="add">Add person</span></p>
</fieldset>
<fieldset>
<h2>Unwaged Rate</h2>
<p>
<input type="text" name="name2[]" id="name2">
<input type="text" name="email2[]" id="email2">
</p>
<p><span class="add">Add person</span></p>
</fieldset>
<p><input type="submit" name="submit" id="submit" value="Submit and proceed to payment page" class="submit-button" /></p>
</form>
目前的形式驗證腳本是這樣的:
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("booking");
frmvalidator.addValidation("email[]","req","Please enter a valid email address");
frmvalidator.addValidation("email[]","email","Please enter a valid email address");
</script>
但是,如果用戶增加了第二排的形式的頂部,該腳本只驗證第一行的電子郵件地址,我想知道如何讓它驗證添加到表單的每一行。
附加信息
繼Melsi的意見產生形式和處理確認已經完全重寫劇本。下面通過Melsi的響應包含了我所要求的以下特性(其中大部分是在原來的劇本太):
- 形式是現在頁面加載空的,所有行(文本框)被動態地添加用戶使用按鈕。
- 每個文本框的默認值顯示何時使用唯一顏色添加新行。
- 當用戶單擊每個文本框時,文本和背景的顏色會發生變化。
- '刪除'按鈕被添加到每行的末尾,以便可以刪除行。是
驗證的必需
的每行都需要驗證如下:
- 名稱:是不是 '名稱'(消息: 「請輸入您的姓名」),最多100個字符(消息:「你的名字應該少於100個字符」)
- 電子郵件:是一個有效的電子郵件地址(消息:「Pleas (請輸入一個有效的電子郵件地址「),最多100個字符(消息:」您的電子郵件地址應少於100個字符「)
- 位置:不是'位置'(消息:」請輸入您的位置或N/a。如果不適用「),最多100個字符(消息:‘您現在的位置應該是少於100個字符’)
- 組織:是不是‘組織’(消息:」請輸入您的組織或 N/A如果不適用「),最多100個字符(消息:」您的組織 應小於100個字符「)
那我就需要一個確認提交,檢查該行已被添加到形式,出現「請添加至少一個人預訂」
驗證實例形式:
//validate-name
box=document.getElementById(caller).name.charAt(0);
if(box=='n'){
if((document.getElementById(caller).value)=='Name')
{
alert('Please enter your name')
document.getElementById('message').innerHTML="<span>Please enter your name</span>";
//put focus back again if you like
document.getElementById(caller).focus();
return;
}
}
//if code comes here = validation success
document.getElementById(caller).style.backgroundColor = '#F5FEC1';
document.getElementById('message').innerHTML="<span style="+dbq+"background-color: #A3BB00"+ dbq+">Thanks!</span>";
}
是的,謝謝。現在表格看起來像我想要的。你可以看到最新版本[這裏](http://www.soterianetwork.org.uk/conference2/index.html)。我現在試圖弄清楚驗證如何工作。我現在要編輯原始問題,以便它與您的答案相符,包括更多關於我需要的驗證的信息。 – Nick
嗨,梅爾西。當我問這個問題時,我剛剛開始處理驗證腳本,因此我只是將電子郵件驗證置於原地。這個驗證是爲我上面鏈接的gen_validatorv4.js腳本設計的,所以我假定它需要爲腳本重寫。現在我已經在原始問題中包含了我需要的所有驗證。也許你可以包括一個我將如何包含這些驗證中的一個的例子,以便我可以開始使用它?謝謝。 – Nick
謝謝,我的電子郵件驗證工作正常,但無法使其他驗證工作。我在上面的問題末尾輸入了名稱驗證代碼。使用此代碼,該腳本已損壞,我無法將文本框添加到表單中。 – Nick