如何验证具有相同验证要求的2个文本框?

时间:2013-01-04 10:25:25

标签: javascript html

我发现很难验证2个文本框,以便将它与2012-13的学术年份相匹配。我已经为两个文本框提供了不同的ID,它们试图单独验证,但它没有发生。你们中的任何人都可以帮忙吗?我是一个更新鲜的人。 我附上了我的js代码。如果找不到两个文本框的模式,我想要一条错误消息。

   <html>
<body>
<script type="text/javascript">

window.onchange=function check_it() {
    var ay = document.getElementById("ayear").value;
    var fy=document.getElementById("fyear").value;

    var pattern = /\d{4}-\d{2,4}$/;

    if(pattern.test(ay) && pattern.test(fy)){
        return true;
    } else {

       window.alert ("invalid");
        return false;
    }
}
</script>
<form   >

<p> This Report is prepared for the Current Acadamic Year(<input type="text" size="10"  id="ayear" >) and the Current Financial Year (<input type="text" size="10"  id="fyear" >) on behalf of the Institution.</p>


</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

试试这个:

window.onchange=function check_it() {
    var ay = document.getElementById("ayear").value;
    var fy=document.getElementById("fyear").value;

    var pattern = /^\d{4}-\d{2,4}$/;
    if(pattern.test(ay) && pattern.test(fy)){
        return true;
    } else {
        window.alert ("invalid");
        return false;
    }
}

另外,我建议用这个代替你的正则表达式:

/^\d{4}-\d{2,4}$/

因为其他正则表达式也会验证122012-2012345

现在,如果两个字段都通过测试,则上述函数将仅返回true。否则,它将返回false


另外,我建议您始终使用括号({})和if/else。你的代码中有一个小问题。

此:

if (pattern.test(ay))
    return false;
else
    window.alert ("invalid");
return true;

应该是:

if (pattern.test(ay)){
    return false;
} else {
    window.alert ("invalid");
    return true;
}

<强> Working Sample

答案 1 :(得分:0)

我希望此解决方案适用于您onBlur将在您从文本字段移动光标时自动触发。如果您愿意,也可以添加onClick功能。这是你的代码。在适当的地方使用它。

<script>
function validate(){
var y = document.getElementById("errorResponse");
var x=document.forms["myForm"]["fval"].value;
var z=document.forms["myForm"]["sval"].value;

//Compare the expression

    if (x!=z){
        y.innerHTML = "Values not missing";
    }else{
        y.innerHTML = "Correct";
    }
 }
</script>


<form name="myForm">
First value: <input type="text" name="fval"/><br>
Second value: <input type="text" name="sval" onBlur = "validate()"/>
<div id = "errorResponse"></div>
<input type="submit" value="Submit">
</form>