0

该脚本主要按我的意愿运行:未选中单选复选框时发出警报。但是,如果选择了所有按钮,我需要它提交的表单......这就是我挂断电话的地方。现在,如果选择了所有字段和按钮,那么我仍然会收到带有 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();
};
4

4 回答 4

2

在表单提交之前您有一个退货。这可能是问题的一部分。

此外,您在最后的 if 语句中缺少 else 。

于 2012-05-30T02:41:28.367 回答
1

无论您的验证如何,您都会返回 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 的最终值长度与您最初设置的长度。

于 2012-05-30T02:50:18.177 回答
1

您在表单提交行之前返回,所以它永远不会被调用。

于 2012-05-30T02:41:54.150 回答
-1
var alertMsg = "";

//....

if(alertMsg) {
    alert("Please Choose a:" + alertMsg);
} else {
    document.forms["form"].submit();
}

请添加;到每个声明中。

于 2012-05-30T02:41:05.293 回答