我有一个以下的asp控件
<asp:Button ID="btnSave" onclick="return validate();"
runat="server" Text="submit" CssClass="next" />
以下是js函数Validate
function Validate()
{if (some condition){return true} else return false; }
此代码在IE10和IE11以外的所有浏览器中都能正常运行 该函数始终返回一个值。但是当我在IE11或10中调试时,我遇到了问题 &#34; &#39;回归&#39;功能之外的陈述&#34;函数执行后。
可能是什么原因?
好吧,我正在编辑这个问题,因为我刚才知道这个问题是别的。 我使用完整的声明&#39;返回Validate()&#39;在Add Watch of IE中查看真正的价值,并收到错误&#39; return&#39;功能之外的陈述&#34;。当我尝试仅使用&#39;验证()&#39;我得到了真实的&#39;作为它的价值。函数根据条件返回正确值true或false,但我在IE10或IE11中得到的实际问题是,即使在获得Validate函数的返回值后,我的表单也没有提交给服务器。 有什么想法吗?答案 0 :(得分:1)
在您的情况下,您无需在代码中使用else part
。
function Validate() {
if (some condition) {
return true;
}
return false;
}
还可以通过添加return true
终止行;
。
或
简写方式是
function Validate() {
return ((some condition) ? true : false);
}
感谢@pholpar提出建议。
答案 1 :(得分:0)
我认为问题是由于你的onclick处理程序中没有使用匿名方法引起的,例如:
<asp:Button ID="btnSave" onclick="function(){return validate();};"runat="server" Text="submit" CssClass="next" />
此外,您可以将Validate
方法简化为:
function Validate() {
return (some condition);
}