在javascript中第一个正则表达式通过后,如何继续检查验证?
我有一个javascript中的正则表达式,它在clientclick中被选中。我下面的代码工作正常,如果第一次检查是假的,我有一条消息显示,它在提交之前停止,因为我想它。但是,如果第一次验证检查正常,我希望它检查下一组验证,但它只是跳过其余部分并提交。我是不是遗漏了什么在javascript中第一个正则表达式通过后,如何继续检查验证?,javascript,regex,Javascript,Regex,我有一个javascript中的正则表达式,它在clientclick中被选中。我下面的代码工作正常,如果第一次检查是假的,我有一条消息显示,它在提交之前停止,因为我想它。但是,如果第一次验证检查正常,我希望它检查下一组验证,但它只是跳过其余部分并提交。我是不是遗漏了什么 <script type="text/javascript"> function checkall() { var isValid21 = false; var regex21 = /(0[
<script type="text/javascript">
function checkall() {
var isValid21 = false;
var regex21 = /(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/;
isValid21 = regex21.test(document.getElementById("TimeTest").value);
document.getElementById("spnError21").style.display = !isValid21 ? "block" : "none";
document.getElementById("TimeTest")
return isValid21;
var isValid2 = false;
var DDLOne = document.getElementById("DropDownA");
if (DDLOne.value == "") {
document.getElementById("spnError2").style.display = !isValid2 ? "block" : "none";
document.getElementById("DropDownA")
return false;
}
var submit = 0;
if (++submit > 1) {
alert('Give me a second.');
return false;
}
return true;
}
</script>
<asp:Button ID="Button1" runat="server" Text="Submit" onclientclick="return checkall();" OnClick="Button1_Click" />
您的代码在第一次检查后立即返回,这就是第二次检查从未被检查的原因。您需要更改代码以在函数末尾返回两个检查的集合。此外,submit变量在scope函数中声明,这意味着它将始终初始化为0。我认为你需要在你的职责之外声明。另外,那些空文档是什么。getElementById。。。需要什么?他们什么也不做。最后,在函数的末尾返回true。您需要调整逻辑规则,并在最后返回isValid21和isValid2的集合。您必须自己进行调整,因为我们不知道所需的业务规则。尽管如此,我不确定这种逻辑是否合理,但这至少应该让您朝着正确的方向前进:
var submit = 0;
function checkall() {
var isValid21 = false;
var isValid2 = false;
var regex21 = /(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/;
isValid21 = regex21.test(document.getElementById("TimeTest").value);
document.getElementById("spnError21").style.display = !isValid21 ? "block" : "none";
var DDLOne = document.getElementById("DropDownA");
if (DDLOne.value == "") {
document.getElementById("spnError2").style.display = !isValid2 ? "block" : "none";
isValid2 = false;
}
if (++submit > 1) {
alert('Give me a second.');
isValid2 = false;
}
//SOME OTHER LOGIC RULES THAT CHANGE isValid2 TO TRUE...
//YOU WILL NEED TO DO SOME ADDITIONAL LOGIC TWEAKING BEFORE THIS LINE. AS IT STANDS NOW, THIS WILL ALWAYS RETURN FALSE.
return isValid21 && isValid2;
}
您认为return是什么意思?为什么不让每个验证步骤都成为一个不同的函数,然后调用一个调用其他验证函数的验证函数呢?当您可以创建多个函数来验证和清理代码时,为什么要生成一个卷积函数?请考虑熟悉:返回语句结束函数执行…返回函数结束。把它放在一个if块中。