JS新手入門!我覺得我已經理解了我的代碼正在做什麼,但它仍然行不通。表單驗證危機
該錯誤是(據說)與驗證的電話號碼形式,我有代碼,據我所知 - 應該工作(但不)。
請注意,我沒有驗證地址,郵政編碼和CC的代碼。我的想法是,我可以將您的解決方案應用到論文中,因爲它們與電話號碼相似。
另請注意我確實嘗試了isNaN,但它是「怪異的」。希望這不是太模糊,但我相信你們中的一些人會「知道」我在說什麼。
這裏,我們去(很抱歉,如果我的功能有點長,讓我知道,如果它的做法不好或什麼的。)
讓如果我們能夠從生硬的回答望而卻步?我想知道什麼是錯,所以我可以自己修復,走在我通過它,如果你有心靈耐心:)
JS和HTML:
function detailCheck() {
var phNoLength = document.getElementById('phNo').value.length; //get value for phone number from form for checking
var cardNoLength = document.getElementById('cardNo').value.length; //get value for card number length for checking
var postCodeLength = document.getElementById("postCode").value.length //get value for post code length
var a = /^[A-Za-z]+$/;
var b = /^[-+]?[0-9]+$/;
for (var i = 0; i < 5; i++) {
details = document.getElementById("myForm")[i].value;
if (details === "") {
var i = ("Please enter ALL your details.");
document.getElementById("formTital").innerHTML=i;
return;
} else {
if(phNoLength != 7) {
var i = "Please use a phone number with a length of 7";
document.getElementById("formTital").innerHTML = i;
} else {
if(b.test(document.getElementById("phNo").value)) {
\t
if(postCodeLength === 4){
var f_nameLength = document.getElementById('fName').value.length;
var l_nameLength = document.getElementById('lName').value.length;
if(f_nameLength < 3) {
var i = "First name not long enough"
document.getElementById("formTital").innerHTML=i;
} else {
if(a.test(document.getElementById("fName").value)) {
\t if(l_nameLength < 3) {
var i = "Last name not long enough"
document.getElementById("formTital").innerHTML=i;
} else {
if(a.test(document.getElementById("lName").value)) {
\t
\t if(cardNoLength === 4) {
\t \t
\t \t if(isNaN(cardNoLength)) {
var i = "Your card number must be numbers only";
document.getElementById("formTital").innerHTML=i;
} else {
//---- End result ----//
toggleContent();
//--------------------//
}
} else {
\t var i = "Your card number must have four numbers";
document.getElementById("formTital").innerHTML = i;
}
} else {
var i = "Please only use letters in your last name";
document.getElementById("formTital").innerHTML=i;
}
}
} else {
\t var i = "Please only use letters in your first name";
document.getElementById("formTital").innerHTML=i;
}
}
} else {
\t var i = "Please use a post code with a length of four";
\t document.getElementById("formTital").innerHTML = i;
}
} else {
var i = "only use numbers in your Phone number";
document.getElementById("formTital").innerHTML=i;
}
}
}
}
}
<form id="myForm" action="form_action.asp">
First name: <br> <input class="formInput" type="text" id="fName" name="fName"><br>
Last name: <br> <input class="formInput" type="text" id="lName" name="lName"><br>
Phone Number: <br> <input class="formInput" type="number" id="phNo" name="phNo" maxlength="7"><br>
Credit Card Number: <br> <input class="formInput" type="password" id="cardNo" name="cardNo" maxlength="4"><br>
Address: <br> <input class="formInput" type="text" id="address" name="address"><br>
Post code: <br> <input class="formInput" type="number" id="postCode" name="postCode" maxlength="4"><br>
</form>
這是一個*很多嵌套'if's ... –
這是一件壞事?你會如何設定像這樣的條件? – Draxy
不一定是壞事,但我個人認爲他們變得非常混亂,特別是取決於縮進。 –