2010-05-25 38 views
6

mã html:nút Jquery Asp.net vô hiệu hóa

<asp:Button runat="server" ID="btnTest" Text="Test" OnClick="btnTest_Click" /> 

Jquery Code:

$('[id$=btnTest]').click(function(){ 
    $('[id$=btnTest]').attr('disabled', 'true'); 
}); 

CodeBehind:

protected void btnTest_Click(object sender, EventArgs e) 
{ 
//here not come. 
} 

Mã Đằng sau sự kiện btnTest không hoạt động?

+0

Bạn cần phải biết 'ClientID' của nút bấm của bạn trong JS.Nó không giống với 'ID', nhưng giống như' ctl00_Content1_btnTest', nếu bạn sử dụng masterpage. –

+0

Vấn đề là bạn phải đặt thuộc tính 'disabled =" disabled "' thay vì 'disabled =" true "'. –

Trả lời

8

Tôi nghĩ rằng việc tắt nút trong trình xử lý sự kiện nhấp chuột đang ngăn việc đăng lại. Hãy thử thực hiện các mã vô hiệu hóa sau một thời gian:

$('[id$=btnTest]').click(function(){ 
    var button = this; 

    setTimeout(function() { 
     $(button).attr('disabled', 'disabled'); 
    }, 100); 
}); 
-2

Nó sẽ không hoạt động vì id HTML được tạo khác với id ASP.NET.
Vì vậy, btnTest sẽ được hiển thị dưới dạng một Id khác.

Một cách bẩn nhanh là chạy trang, xem nguồn HTML và định vị Id được tạo của nút và chuyển nó làm một phần trong hàm jQuery.

Cách tốt hơn là để tạo ra các chức năng jQuery qua mã sau:

Literal1.Text = "$('[id$=" + btnTest.ClientId + "]').click(function(
{$(this).attr('disabled', 'disabled');});"; 

Sửa: Ngoài ra tôi không thể giúp đỡ, nhưng nhận ra rằng OnClick thuộc tính của bạn phải trỏ đến btnTest_Click và không btn_Click

+1

'$ =' là bộ chọn "kết thúc bằng", mã của anh ấy đã hoạt động cho điều này. –

+0

"btnTest_Click và không btn_Click" no – Chicharito

0

Bạn sẽ không chỉ cần ne ed để thực hiện những việc sau:

btnTest.Enabled = False; 

trong tệp mã sau? Điều này sẽ gây ra một postback nhưng nó sẽ làm việc.

+0

i wan't Postback – Chicharito

1

Cố gắng sử dụng jQuery lớp chọn:

  1. Thêm CssClass="MyButton" nút ASP.NET của bạn;
  2. Sử dụng selector này trong jQuery
  3. Set disabled="disabled" thuộc tính trên nhấp chuột

jQuery:

$('button.MyButton').click(function(){ 
    $(this).attr('disabled', 'disabled'); 
}); 
+0

Chỉ cần thay thế giá trị của thuộc tính 'disabled' * true * bởi ** disabled **:' .attr ('disabled', 'true') 'by' .attr ('bị vô hiệu hoá', 'bị vô hiệu hóa') '- đó là vấn đề. –

1

Các mẫu mã được sử dụng các đầu-với selector. Không có lỗi trong bộ chọn. bạn chỉ cần thay đổi mã như thế này

$('[id$=btnTest]').click(function() { 
     $('[id$=btnTest]').attr('disabled', true); 
}); 

Tôi đã thử nghiệm điều này và làm việc tốt mà không có bất kỳ vấn đề.

0

tôi có thể khắc phục vấn đề của bạn: $(".classButton").prop('disabled','disabled'); and remove disabled: $(".classButton").prop('disabled', '');

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