'回归' IE 10和IE 11中的函数之外的语句

时间:2014-09-03 13:24:47

标签: javascript asp.net internet-explorer-10 internet-explorer-11

我有一个以下的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函数的返回值后,我的表单也没有提交给服务器。 有什么想法吗?

2 个答案:

答案 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" />

请参阅this answerthis one here

此外,您可以将Validate方法简化为:

function Validate() { 
  return (some condition);
 }