html5 hỗ trợ thuộc tính trình giữ chỗ trên các phần tử input[type=text]
, nhưng tôi cần xử lý các trình duyệt không tuân thủ. Tôi biết có một nghìn plugin trên đó cho trình giữ chỗ nhưng tôi muốn tạo 1001st.jquery: nhận giá trị của thuộc tính tùy chỉnh
Tôi có thể xử lý trên thành phần input[placeholder]
nhưng cố gắng lấy giá trị của thuộc tính trình giữ chỗ là trả lại không xác định - $("input[placeholder]").attr("placeholder")
.
Tôi đang sử dụng jquery 1.6.2.
Đây là jsfiddle. Tôi đã sửa đổi mã để làm việc trong một trình duyệt tương thích html5 chỉ dành cho mục đích thử nghiệm.
html
<input type="text" name="email" size="10" placeholder="EMAIL ADDRESS">
jquery
function SupportsInputPlaceholder() {
var i = document.createElement("input");
return "placeholder" in i;
}
$(document).ready(function(){
if(!SupportsInputPlaceholder()) {
//set initial value to placeholder attribute
$("input[placeholder]").val($("input[placeholder]").attr("placeholder"));
//create event handlers for focus and blur
$("input[placeholder]").focus(function() {
if($(this).val() == $(this).attr("placeholder")) {
$(this).val("");
}
}).blur(function() {
if($(this).val() == "") {
$(this).val($(this).attr("placeholder"));
}
});
}
});
Thanks cho bất kỳ và tất cả sự giúp đỡ, B
Sẽ không phải '$ (" đầu vào [placeholder] ") .val (function() {return $ (this) .attr (" trình giữ chỗ "); }); 'tốt hơn? –
Cảm ơn Dennis. khi tôi thiết lập một điểm ngắt trên mỗi tôi thấy rằng nó thậm chí không nhập chức năng, như nó không tìm thấy bất kỳ yếu tố nào phù hợp với bộ chọn đó. Nhưng khi tôi đặt một đồng hồ trên $ ("đầu vào [placeholder]"). Val() Tôi thấy "" và nếu tôi cung cấp cho các yếu tố một giá trị ban đầu tôi sẽ thấy giá trị. – bflemi3
@Richard Yeah, tốt hơn một chút. Có lẽ không quá nhiều suy nghĩ khác biệt. bflemi3, Bạn đang sử dụng trình duyệt nào? Mã của bạn hoạt động trong Chrome và IE7 – Dennis