0

我发现很难验证 2 个文本框以将其与 2012-13 等学术年的模式匹配。我为两个文本框提供了不同的 id,n 试图单独验证,但它没有发生。你们中的任何人都可以帮忙吗?我是一个新鲜人。我附上了我的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>
4

2 回答 2

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


另外,我建议始终在您的 's 中使用方括号 ( {}) 。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;
}

工作样本

于 2013-01-04T10:30:20.883 回答
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>
于 2013-01-05T04:45:00.380 回答