เนื่องจากโซลูชันส่วนใหญ่ใช้ jQuery หรือไม่น่าพอใจเท่าที่ฉันต้องการให้เป็นฉันจึงเขียนตัวอย่างสำหรับตัวเองสำหรับ mootools
function fix_placeholder(container){
if(container == null) container = document.body;
if(!('placeholder' in document.createElement('input'))){
var inputs = container.getElements('input');
Array.each(inputs, function(input){
var type = input.get('type');
if(type == 'text' || type == 'password'){
var placeholder = input.get('placeholder');
input.set('value', placeholder);
input.addClass('__placeholder');
if(!input.hasEvent('focus', placeholder_focus)){
input.addEvent('focus', placeholder_focus);
}
if(!input.hasEvent('blur', placeholder_blur)){
input.addEvent('blur', placeholder_blur);
}
}
});
}
}
function placeholder_focus(){
var input = $(this);
if(input.get('class').contains('__placeholder') || input.get('value') == ''){
input.removeClass('__placeholder');
input.set('value', '');
}
}
function placeholder_blur(){
var input = $(this);
if(input.get('value') == ''){
input.addClass('__placeholder');
input.set('value', input.get('placeholder'));
}
}
ฉันยอมรับว่ามันดูมากกว่าคนอื่นเล็กน้อย แต่ก็ใช้ได้ดี
__placeholderเป็น ccs-class เพื่อทำให้สีของข้อความตัวยึดเป็นแบบแฟนซี
ฉันใช้fix_placeholderในwindow.addEvent ('domready', ...และสำหรับโค้ดที่เพิ่มเพิ่มเติมเช่นป๊อปอัป
หวังว่าคุณจะชอบมัน.
ขอแสดงความนับถือ.
<input>
); แอตทริบิวต์คือคู่คีย์ - ค่าภายในวงเล็บเหลี่ยม (likeplaceholder="This is an attribute value"
) ปล่อยให้คำถามตามที่เป็นอยู่เพื่อให้คนในอนาคตที่ถามคำถามเดียวกันได้ค้นพบ