0

我试图通过调用一个 php 文件将所有验证值合并到一个函数中。它设法验证,但不知何故,如果我验证一个字段,另一个字段消息也会出来。

形式:

<input name="SNo" type="text" id="SNo" onkeyup="Validate(this.value)" value=""/> <span id="validateNumbers"></span>
<input name="Names" type="text" id="Names" onkeyup="Validate(this.value)" value=""/><span id="validateNames"></span>

Javascript函数:

function Validate(value) {
    var SNo = document.getElementById('SNo').value;
    var Names = document.getElementById('Names').value;
    if (str == SNo) {
        if (str.length == 0) {
            document.getElementById("validateNumbers").innerHTML = "Must not be blank";
            return;
        }
        if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("validateNumbers").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "functions/validate.php?SNo=" + str, true);
    xmlhttp.send();
} else if (str == Names) {
    //same coding as if statement
} else {}
}

因此,如果我将其留空,则 validateNumbers 和 validateNames 错误消息以及其他消息都会出现。我没有使用任何循环,但为什么会重复..请告知。

4

1 回答 1

1

str 未定义。最好传入输入对象本身。

function Validate(field) {
    var SNo = document.getElementById('SNo');
    var Names = document.getElementById('Names');

    if (field == SNo) {
        if (field.value.length == 0) {
            document.getElementById("validateNumbers").innerHTML = "Must not be blank";
            return;
        }
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("validateNumbers").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "functions/validate.php?SNo=" + field.value, true);
        xmlhttp.send();

    } else if (field == Names) {
        //same coding as if statement
    } else {}
}

<input name="SNo" type="text" id="SNo" onkeyup="Validate(this)" value=""/>
<input name="Names" type="text" id="Names" onkeyup="Validate(this)" value=""/>
于 2012-07-14T15:38:20.577 回答