我有一個小問題,在javascript驗證的事情。窗體仍然提交後返回false javascript
<form action="insert.php" id="form" name="form" method="post"
onSubmit="return validate()">
<pre>
Vul hier de/het E-mail adres(sen) in
<textarea name="email" rows="5" cols="50"></textarea><br>
Typ hier de E-mail
<textarea name="text" rows="5" cols="50"></textarea><br>
<input type="submit" name="Submit" value="Submit">
</pre>
</form>
正如你在這裏看到的,我有兩個textareas。在上面的一箇中,你應該在彼此之下輸入一個或多個電子郵件地址,而在底部的textarea中,你應該自己編寫電子郵件。然後,當你點擊提交時,它會發送電子郵件到所有這些指定的電子郵件地址。
現在,我做了一個驗證兩個文本域:
function explodeArray(emailID, delimiter) {
tempArray = new Array(1);
var Count = 0;
var tempString = new String(emailID);
while (tempString.indexOf(delimiter) > 0) {
tempArray[Count] = tempString.substr(0, tempString.indexOf(delimiter));
tempString = tempString.substr(
tempString.indexOf(delimiter) + 1,
tempString.length - tempString.indexOf(delimiter) + 1
);
Count = Count + 1
}
tempArray[Count] = tempString.replace("\r", "");
return tempArray;
}
function validate() {
var emailID = document.form.email;
var delimiter = "\n";
var emailArray = explodeArray(emailID.value, delimiter);
var textID = document.form.text;
var length = emailArray.length,
element = null;
for (var i = 0; i < length; i++) {
emailVar = emailArray[i];
if (emailVar == null) {
alert("Email-adres bestaat niet")
emailID.focus()
return false
}
if (emailVar == "") {
alert("Email-adres veld is leeg")
emailID.focus()
return false
}
if (checkEmail(emailVar) == false) {
emailVar.value = ""
alert("Ongeldig E-mail adres");
emailVar.focus()
return false
}
}
if ((textID.value == null) || (textID.value == "")) {
alert("E-mail textveld is leeg")
textID.focus()
return false
}
document.getElementById("form").submit();
return true
}
function checkEmail(hallo) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(hallo)) {
return true
}
return false
}
(我可能複製大量的不相關的代碼以及,爲此後悔,只是複製了整個事情以防萬一......)
現在什麼做工作:
當兩個文本域是空的 - 它不會提交;
-當郵件地址有效時不會提交但底部的textarea爲空;
什麼不的工作是:當電子郵件地址無效
-the形式仍然提交,即使在底部文本區域仍然是空的。
我一直試圖找出幾個小時,這裏可能是錯誤的,我google和檢查stackoverflow,但我真的找不到任何東西。有人能告訴我我在這裏做錯了嗎?
在此先感謝。
你檢查你的控制檯,以確保它不是一個腳本錯誤第一? –
...我會聽起來很愚蠢,但我認爲檢查控制檯會像真正的應用程序開發一樣,在那裏使用像Java和C#這樣的東西。我如何用Javascript做這樣的事情? :x –
你當然可以用簡單的'text.split('\ n')''替換那個自制的'explodeArray()'函數 – MCL