JS表单验证适用于chrome和firefox,但不适用于safari

时间:2015-05-05 04:23:43

标签: javascript html forms

我正在使用此功能来验证表单。提交表单时会触发“onsubmit”。 isPresentCond2确定是否存在“条件2”(站点上的某些表单没有条件2输入)。如果发现输入为null或空字符串,则会向用户发出警报并触发按钮。它适用于除safari之外的所有浏览器。

在Safari中,它会将x返回为false并触发确认“请输入x”

没有错误消息。

function validateForm() {
    var isPresentCond2 = document.forms["form1"]["condition2"],
        x = document.forms["form1"]["condition1"].value,
        y,
        z = document.forms["form1"]["condition3"].value;

    if (x == null || x == "") {
    confirm("Please enter a condition1 value");
    $("#Button1").trigger("click");
    return false;
    }
    if (isPresentCond2) {
        y = document.forms["form1"]["condition2"].value;
        if (y == null || y == "") {
            confirm("Please enter a condition2 value");
            $("#Button2").trigger("click");
            return false;
        }
    }
    if (z == null || z == "") {
    confirm("Please enter a condition3 value");
    $("#button3").trigger("click");
    return true;
    }
}

样本表格:

<form name="form1" action="results.php" onsubmit="return validateForm(this)" method="post>
<input type="radio" name="condition1" value="1">
<input type="radio" name="condition1" value="2">
<input type="radio" name="condition1" value="3">

<input type="radio" name="condition2" value="1">
<input type="radio" name="condition2" value="2">
<input type="radio" name="condition2" value="3">

<input type="radio" name="condition3" value="1">
<input type="radio" name="condition3" value="2">
<input type="radio" name="condition3" value="3">

<button type="submit" class="btn-xl btn-success btn-block">See Results <span class="glyphicon glyphicon-circle-arrow-right"></span></button>

if语句应该更像这样吗?

if (!X) ....

是否有明显的原因导致此功能导致Safari出现问题?

感谢。

0 个答案:

没有答案