2011-01-28 29 views
5
protected void btnNext_Click(object sender, EventArgs e) 
    { 
     btnNext.InnerHtml = "CLICK"; 
    } 

    <button type="submit" runat="server" onserverclick="btnNext_Click" id="btnNext">Next &gt;</button> 

này hoạt động tốt, nhưng khi tôi thêm một sự kiện onclick:nút ASP.net onserverclick chỉ hoạt động khi onclick không được định nghĩa

<button type="submit" runat="server" onserverclick="btnNext_Click" onclick="return checkForm();" id="btnNext">Next &gt;</button> 

Và trong đầu:

<script type="text/javascript"> 

    function checkForm() { 

     if (document.getElementById("<%=lstChooseSpec.ClientID %>").value) { 
      return true; 
     } else { 
      $.jGrowl("<strong>Warning!</strong><br />Please select an item", { sticky: true }); 
      return false; 
     } 
    } 
</script> 

Nó gửi biểu mẫu, nhưng không thay đổi văn bản nút thành 'CLICK'. Văn bản chỉ thay đổi thành 'CLICK' khi onclick() không được xác định, mặc dù biểu mẫu vẫn đang gửi!

+7

Có lý do nào khiến bạn không thể sử dụng số thay vì

Trả lời

7

Lý do bạn thấy thông báo này là bởi vì khi bạn có cả hai vào một nút nó chạy handler trên nhấp chuột tiếp theo là __doPostBack function nên onclick sẽ giống như thế này

onclick="return checkForm(); __doPostBack('btnNext','')

Vì vậy, khi bạn có thể thấy __doPostBack, mà thực sự thiết lập chức năng máy chủ nào để gọi, không bao giờ được gọi. Tuy nhiên, vì nút này thuộc loại gửi, biểu mẫu vẫn được gửi trở lại máy chủ.

7

thử mà không cần 'trở lại': <button type="submit" runat="server" onserverclick="btnNext_Click" onclick="checkForm();" id="btnNext">Next &gt;</button>
Hoặc nếu bạn muốn checkForm() để kiểm soát xem có nên gửi hay không - làm như thế này:

onclick="if (!checkForm()) return;" 
+0

Cách tiếp cận này hoạt động. – bdoshi

+0

Cảm ơn, Điều này đã làm việc cho tôi – Tiber

+0

Thay đổi "return" thành "return false" và nó đã hoạt động đối với tôi. Cảm ơn bạn. –

0

Hãy thử điều này:

onclick="javascript:if (!validaForm()) return false;" 

Nó làm việc cho tôi.

Các vấn đề liên quan