2010-06-30 29 views
18

Tôi có hộp mà tôi muốn chạy một số jquery khi hộp mất tập trung, vì vậy sau khi người dùng nhấp chuột ra khỏi hộp văn bản.Jquery chức năng khi một hộp mất tập trung

Tôi đã cố gắng để làm điều này

$("#textbox").focusout(function() { 
    alert("hello"); 

}); 

nhưng tôi nhận được một lỗi nói Object không hỗ trợ tài sản hoặc phương pháp.

Làm cách nào tôi có thể thực hiện việc này?

+0

Bạn đã nói trong nhận xét là 1.4.2, bạn có * hoàn toàn * chắc chắn không? Có thể bạn đang bao gồm một phiên bản cũ hơn của jQuery, có thể tiếp tục xuống trong trang? –

+0

Bạn đã nhập jQuery vào trang chưa? –

+0

vâng tôi chắc chắn tôi chỉ nhập nó một lần trên trang chính và không có nơi nào khác mà tôi không có phiên bản cũ hơn trên hệ thống của mình. có jQuery được nhập vào trang. các chức năng khác như nút() đang được sử dụng và hoạt động tốt. – twal

Trả lời

17

focusout đã được bổ sung trong v1.4. Ba suy nghĩ:

  1. Bạn có thể đang sử dụng phiên bản jQuery cũ hơn không?
  2. Trường của bạn có thực sự có id là textbox không?
  3. Bạn cũng sử dụng Prototype hoặc MooTools (hoặc bất cứ điều gì khác mà có thể tiếp quản $)? Nếu vậy, hãy sử dụng chế độ noConflict của jQuery và sử dụng jQuery thay vì $.

Ngoài ra, nó sẽ (hoạt động).

Dưới đây là một ví dụ (sử dụng một cảnh báo như bạn đã làm): http://jsfiddle.net/QzmZp/1/
và khác không sử dụng một cảnh báo (vì đó hơi bối rối IE7 ra): http://jsfiddle.net/QzmZp/2/
Có người trước đó được hỏi về phiên bản trình duyệt, tôi đã thử trên với Chrome 5, IE6, IE7 và FF3.6; tất cả đều tốt.

Tôi đã thực hiện cả hai inputtextarea vì tôi không chắc chắn bạn đang sử dụng.

+0

tôi chỉ cần kiểm tra lại. nó là 1.4.2 – twal

+0

đôi kiểm tra một lần nữa lĩnh vực của tôi có một id của textbox tôi sao chép và dán nó vào bộ chọn chỉ để chắc chắn. và vẫn như cũ. Có phải cả trình duyệt IE và FF đều không có hiệu lực. – twal

+0

@twal - Bạn có một thư viện khác trên trang, ví dụ mẫu không? –

9
jQuery("#textbox").blur(function() { 
    alert("hello"); 
}); 

blur là sự kiện kích hoạt khi phần tử bị mất tiêu điểm. Hãy xem jQuery.blur.

EDIT

Không chắc nếu đây là những gì bạn muốn, nhưng nếu bạn đang thực sự cố gắng sử dụng focusout séc ra T. J. Crowder's solution. Tuy nhiên, đối với trường hợp của bạn, sự kiện blur có thể cần bạn cần vì bạn muốn phát hiện mất tập trung vào hộp văn bản. focusout kích hoạt khi một phần tử hoặc bất kỳ phần tử nào bên trong yếu tố đó mất tiêu điểm.

+0

làm mờ cho tôi cảm ơn bạn! Không chắc chắn lý do tại sao tôi nhận được lỗi trên tập trung ra nhưng điều này sẽ làm việc. Cảm ơn !!!! – twal

+0

'focusout' kích hoạt cho hộp văn bản là tốt, nó * cũng * bong bóng mặc dù. –

5
$("#idOfTextField").blur(function(){ 

    //your code 

}); 
+2

Cố gắng cung cấp câu trả lời được cải thiện. Nếu bạn đang trả lời giống như bạn đã làm – Sami

1
$(document).ready(function() { 
     ////////////////////////ALL textbox to upper 
     $("input[type=text]").blur(function() { 
      $(this).val($(this).val().toUpperCase()); 
     }); 
    }); 

Để chuyển đổi tất cả các textbox để trên khi họ mất tập trung.

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