我发现很难验证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>
答案 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>