2011-05-13 37 views
0

我使用jQuery進行表單驗證。當用戶沒有填寫表格時,他會收到「需要一些字段」的消息。這有效,如果我有一個輸入按鈕,但當我改變這個asp:按鈕回髮網頁和驗證不起作用。使用ASP.NET按鈕時jQuery驗證不起作用

我該如何解決這個問題?

非常感謝。

代碼:

<script type="text/javascript">  
    $().ready(function() 
    {   
    var validator = $("#aspnetForm").bind("invalid-form.validate", function() {   
     }).validate({ 
     errorElement: "em", 
     errorContainer: $("#warning, #summary"), 
     errorPlacement: function(error, element) { 
      error.appendTo(element.parent("td").next("td")); 
     }, 
      rules: { 
       <%=TextBoxCodigo.UniqueID %>: {required: true} 
        }, 
      messages: { 
       <%=TextBoxCodigo.UniqueID %>:{required: "Requerido"} 
       } 
     }); 

     $('#btnGuardar').click(function() { 
      var txtUsuario = $('#<%= TextBoxCodigo.ClientID %>').val(); 
      if(validator.form()) 
      {    

        $.msg({content: "valido"}); 

      }else{$.msg({content: "El formulario tiene " + validator.numberOfInvalids() + " errores.<br> Por favor vea los detalles indicados."});} 
     }); 
    }); 

    </script> 



    public void btnGuardar_Click(object sender, EventArgs e) 
    { 

     BoClassCodigo boClassCodigo = new BoClassCodigo(); 
     boClassCodigo.CodigoDescripcion = TextBoxCodigo.Text; 
     boClassCodigo.Sesion = new BoClassSesion(); 
     boClassCodigo.Sesion.Sesiones = (Int64)((Usuario) Session["uSession"]).Sesion; 
     boClassCodigo.Sesion.Terminal = ((Usuario)Session["uSession"]).Usuario; 
     string cad = BllClassCodigo.InsertarCodigo(boClassCodigo,conexion); 

    } 
+1

你可以發佈一些代碼示例。 – mellamokb 2011-05-13 15:49:42

回答

0

我猜你的jQuery是看錯ID。

如果你有一個這樣的ASP按鈕:

<asp:Button ID="btnOne" runat="server" /> 

jQuery代碼需要看:

$('#<%= btnOne.ClientID %>') 
+0

如果我這樣做,我不能看到網頁上的按鈕。 – Paul 2011-05-13 16:11:25

+0

你是什麼意思,你看不到它?你的asp按鈕定義是什麼樣的? – 2011-05-13 16:12:26

+0

運行時按鈕無法在webforms中查看,這發生在我刪除runat =「server」標籤時。 如果我使用runat =「server」標籤,按鈕會觸發一個回傳,並且jQuery驗證不起作用。 :( – Paul 2011-05-13 16:28:54

0

從你的問題,看來你應該啓用客戶端驗證或禁用客戶端驗證基於您是否希望回發發生。

總是建議在客戶端和服務器上使用驗證以提高安全性。