2013-04-10 86 views
0

當在此代碼中單擊提交按鈕而名稱字段中沒有任何內容時,validate()函數應該啓動並說「此字段是必需的」。這工作正常,直到我添加服務器端表單標記。一旦這個標籤在那裏(我將需要它在頁面上的其他事情,validate()函數似乎根本不運行,因爲頁面立即做回發,其中validate()函數阻止表單提交時驗證失敗服務器端<form>標記防止jQuery驗證插件驗證

下面的代碼是非工作代碼如果我拿出行和最後一個關閉表單標記(標記,它的工作 - 它驗證,顯示「此字段是必需的」,併成功地阻止表單從

所以加載。我的問題是,爲什麼這不能與服務器端表單標籤工作?

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#nameForm").validate(); 
      }); 
     </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <form id="nameForm" method="get" action=""> 
       <p> 
        <label for="cname">Name</label> 
        <em>*</em> 
        <input id="cname" name="name" size="25" class="required" minlength="2" /> 
       </p> 
       <p> 
        <input class="submit" type="submit" value="Submit"/> 
       </p> 
      </form> 
     </form> 
    </body> 
</html> 
+3

你有兩種形式,這是不正確的 – 2013-04-10 13:13:36

+1

ASP.NET不指定你只能有一個服務器端表單嗎?或者是否也會包含內部表單,因爲它位於服務器表單內? – 2013-04-10 13:20:08

+2

@MarkGladstone你可以在一個頁面上擁有多個表單,你不能擁有*嵌套*表單(HTML標準)......並且你不能有'runat = server'的多個表單。 – MikeSmithDev 2013-04-10 13:33:51

回答

1

Floradu88注意有2種形式是不正確的,下面的代碼(刪除了其中一種形式),現在似乎工作正常,謝謝!

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#form1").validate(); 
      }); 
     </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <p> 
       <label for="cname">Name</label> 
       <em>*</em> 
       <input id="cname" name="name" size="25" class="required" minlength="2" /> 
      </p> 
      <p> 
       <input class="submit" type="submit" value="Submit"/> 
      </p> 
     </form> 
    </body> 
</html> 
0

那是因爲嵌套形式HTML嵌套形式,不支持將被忽略,你可以從你的主要形式

你的代碼

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#nameForm").validate(); 
      }); 
     </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
<form></form> 
      <form id="nameForm" method="get" action=""> 
       <p> 
        <label for="cname">Name</label> 
        <em>*</em> 
        <input id="cname" name="name" size="25" class="required" minlength="2" /> 
       </p> 
       <p> 
        <input class="submit" type="submit" value="Submit"/> 
       </p> 
      </form> 
     </form> 
    </body> 
</html> 

refrence後加入空解決它鏈接 jQuery Validation Issue with a form inside a form