[英]Javascript Form Submission After Validation
該腳本主要發揮我的作用:當未選中單選框時發出警報。 但是,如果選擇了所有按鈕,則需要提交表單...這就是我掛斷的地方。 現在,如果選擇了所有字段和按鈕,那么我仍然會收到帶有var alertMsg的警報。 有任何想法嗎?
function submitform() {
var sizeChoice = ""
var size = document.store.on1.length
var fontChoice = ""
var len = document.store.on2.length
var materialChoice = ""
var material = document.store.on3.length
var treatmentChoice = ""
var treatment = document.store.on4.length
var a = document.forms["store"]["item_name"].value;
var alertMsg = "Please Choose a:"
for(i = 0; i < size; i++) {
if(document.store.on1[i].checked) {
sizeChoice = document.store.on1[i].value
}
}
for(i = 0; i < len; i++) {
if(document.store.on2[i].checked) {
fontChoice = document.store.on2[i].value
}
}
for(i = 0; i < material; i++) {
if(document.store.on3[i].checked) {
materialChoice = document.store.on3[i].value
}
}
for(i = 0; i < treatment; i++) {
if(document.store.on4[i].checked) {
treatmentChoice = document.store.on4[i].value
}
}
if(a == null || a == "") alertMsg += "\n" + "Name" + "\n";
if(sizeChoice == "") {
alertMsg += "Size" + "\n"
}
if(fontChoice == "") {
alertMsg += "Font" + "\n"
}
if(materialChoice == "") {
alertMsg += "Material" + "\n"
}
if(treatmentChoice == "") {
alertMsg += "Treatment" + "\n"
} {
alert(alertMsg)
};
return false;
document.forms["form"].submit();
};
在提交表單之前,您將獲得退貨。 那可能是問題的一部分。
另外,您在最終的if語句中缺少else。
無論您是否進行驗證,您都將返回false。 從以下位置更改代碼的結尾:
if(treatmentChoice == "") {
alertMsg += "Treatment" + "\n"
} {
alert(alertMsg)
};
return false;
document.forms["form"].submit();
至:
if(treatmentChoice == "") {
alertMsg += "Treatment" + "\n"
}
if(alertMsg.length > 16) {
alert(alertMsg);
return false;
} else {
document.forms["form"].submit();
}
長度檢查會根據您最初設置的值來檢查alertMsg的最終值長度。
您在表單提交行之前返回,因此將永遠不會調用它。
var alertMsg = "";
//....
if(alertMsg) {
alert("Please Choose a:" + alertMsg);
} else {
document.forms["form"].submit();
}
並且請添加;
每個陳述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.