[英]Javascript - multiple client-side validations on same event
I am performing two validations on the client side on the samve event. 我正在samve事件的客户端执行两次验证。 I have defined my validations as shown below
我已经定义了我的验证,如下所示
btnSearch.Attributes["OnClick"] = "javascript:return prepareSave(); return prepareSearch();"
Pseudo code for 的伪代码
prepareSave():
{
if (bPendingchanges)
{
return confirm('Need to save pending changes first, click OK and loose changes or cancel to save them first')
}
else
{return true}
}
Pseudo code for 的伪代码
prepareSearch():
{
if (bNoSearchText)
{
alert('Please specify search criteria before proceeding')
return false;
}
else
{return true;}
}
When bPendingchanges=false
, I never get the second validation running. 当
bPendingchanges=false
,我永远不会运行第二个验证。 Anyone who can quickly spot what I have overlooked here? 任何人都可以快速发现我在这里忽略的地方吗? Please?
请?
return
, as the name implies, returns control back to whatever called the code in question. 顾名思义,
return
会将控制权返回到所谓的代码。 Therefore, anything that's after a return statement 因此,在return语句之后的所有内容
return prepareSave(); return prepareSearch();
// ^^^^^^^^^^^^^^^^^^^^^^^ e.g. this part
never executes. 永远不会执行。 Try
return (prepareSave() && prepareSearch());
尝试
return (prepareSave() && prepareSearch());
Your second return
statement will never be reached. 您的第二个
return
声明将永远无法实现。 Execution stops after javascript:return prepareSave()
. 在
javascript:return prepareSave()
之后执行将停止。
Looks like you want to return true if both functions return true - therefore, do: 如果两个函数都返回true,则看起来您想返回true-因此,请执行以下操作:
btnSearch.Attributes["OnClick"] = javascript: return prepareSave() && prepareSearch();
That's because the return prevents the second validation from running. 这是因为返回值阻止了第二次验证的运行。 Try this
尝试这个
btnSearch.Attributes["OnClick"] = "javascript:return prepareSave() && prepareSearch();"
"javascript:return prepareSave(); return prepareSearch();"
1) You shouldn't have the "javascript:" 1)您不应该使用“ javascript:”
2) return prepareSearch();
2)
return prepareSearch();
will never be executed, because "return prepareSave();
exits your event handler 永远不会执行,因为
"return prepareSave();
退出事件处理程序
Try "return (prepareSave() && prepareSearch());"
尝试
"return (prepareSave() && prepareSearch());"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.