2011-07-06 24 views
5

Có chức năng/bộ chọn tích hợp trong jQuery để lọc đầu vào theo giá trị không?chức năng/bộ chọn để lọc đầu vào theo giá trị

tôi có thể tạo ra một bộ chọn tùy chỉnh:

$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $(elem).val() == match[3]; 
    } 
}); 

và sử dụng nó như thế này: $("input:val('Some text')").

Tôi đã tự hỏi nếu một cái gì đó như thế này đã tồn tại hoặc có thể có một cách tốt hơn.

Trả lời

2

Bạn có thể làm điều này:

$('input[value=someval]') 

bạn cũng có thể chuỗi nó

$('input[type=radio][value=someval]') 

nhìn here:

+2

này sẽ trả lại (thuộc tính) giá trị mặc định, nhưng tôi cần những giá trị hiện tại của sự kiểm soát. – Corneliu

+0

Đầu tiên sẽ chọn tất cả đầu vào có giá trị = 'someval'. Đây là một bộ chọn, nó trả về một tập các đối tượng jquery. Điều này "lọc đầu vào theo giá trị" vì nó chỉ trả về các giá trị đầu vào với một giá trị nhất định. –

+8

giá trị = 'someval' sẽ lọc các điều khiển theo giá trị ban đầu được xác định bởi thuộc tính "giá trị". , nếu người dùng thay đổi văn bản trong hộp nhập, trước thành 'newval', đầu vào [value = someval] sẽ vẫn chọn nút (tại ít nhất là trong các trình duyệt tuân thủ các tiêu chuẩn, ví dụ FF cũ), bởi vì giá trị mặc định vẫn là 'someval'. IE sẽ lọc dựa trên giá trị hiện tại không theo tiêu chuẩn HTML. – Corneliu

2
$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $.trim($(elem).val()) == $.trim(match[3]); 
    } 
}); 
4

Nó không giống như có một giải pháp tích hợp . Nhưng đối với một chọn một lần, .filter() là một lựa chọn:

$('input').filter(function() { return $(this).val() === 'Some text'; }); 
Các vấn đề liên quan