2010-11-08 27 views
0

我有一个这样的形式:问题的一个提交输入和jQuery验证

<script type="text/javascript"> 
    function checkpas() 
    { 
     var newp = $('#NewPassword').val(); 
     var newpp = $('#RepeatedNewPassword').val(); 

     if (newp != newpp) 
     { 
      return false; 
     } 
    } 
    </script> 

<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true) %> 
     ... 
    <input type="submit" id="sub_btn" value="Edit" onclick="checkpas();" /> 
<% } %> 

但提交输入总是调用表单提交,即使我在JS代码返回false。为什么?

回答

1

我相信你需要返回函数结果:代替 :

<input type="submit" id="sub_btn" value="Edit" onclick="checkpas();" /> 

使用:

<input type="submit" id="sub_btn" value="Edit" onclick="return checkpas();" /> 

也是你的函数添加else return true;

2

你需要运行的onsubmit()不是的onclick()

像这样:

<script type="text/javascript"> 
    $("#yourformID").submit(function (evt) 
    { 
     var newp = $('#NewPassword').val(); 
     var newpp = $('#RepeatedNewPassword').val(); 

     if (newp != newpp) 
     { 
      return false; 
     } 
    } 
    </script> 

注意在你的ASPX这样分配形式的ID。这里是一个参考http://msdn.microsoft.com/en-us/library/dd492714.aspx

<% using (Html.BeginForm("ActionName", "ControllerName", Method, new {id="myFormID")})) {%>