使用jQuery来模拟input的placeholder
一.需求描述
我们在写HTML代码的时候后,经常遇到input元素,在使用input元素的时候,我们有时需要利用input的placeholder属性来告诉用户在这个输入框中应该输入什么内容,提升用户体验。不幸的是,IE系列的浏览器不支持placeholder属性,那么要想在IE系列的浏览器中提升用户体验,只能利用jquery来模拟了。
二.使用jQuery模拟placeholder代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | if(!$.support.placeholder) { // 使用选择器,选中所有带有placeholder属性的input元素列表 var els = $('input[placeholder],textarea[placeholder]'); // 遍历每个带有placeholder属性的元素 els.each(function(i, el) { el = $(el); // 获取placeholder的值以及颜色值 var defValue = el.attr('placeholder'), defColor = el.css('color'); // 当输入框获取到焦点后,把placeholder的值清空 el.bind('focus',function() { if(this.value === '' || this.value === defValue) { $(this).css('color', defColor); this.value = ''; } }); // 当输入框失去焦点后,要是用户没有输入值,或者输入的值和placeholder的值一样,就把placeholder属性再次展示出来 el.bind('blur',function() { if(this.value === '' || this.value === defValue) { $(this).css('color','#aaa'); this.value = defValue; } }); el.triggerHandler('blur'); // 在表单提交时,需要判断用户输入的值是否和placeholder的值一样,要是一样就需要清空 el.closest('form').submit(function(){ var val = el.val(); if(val === defValue){ el.val(''); } }); }); } |