我有一个表单字段。使用jQuery(因为我无法访问HTML),我需要将默认值设置为'Year / Make / Model',当字段获得焦点时,如果那里是文本,它就会消失。但如果它是自定义文本,那么该字段保持不变。
var textVal = 'Year/Make/Model';
$('form li:contains("Vehicle Details") input').attr('value', textVal).on('focus', function(){
if ($(this).attr('value') == textVal)
$(this).attr('value','');
}).on('blur', function(){
if ($(this).attr('value') == '')
$(this).attr('value',textVal);
});
这有效,但我相当确定有更好的方法。我是JS的新手。请善待:)
谢谢!
答案 0 :(得分:0)
您可以多次访问DOM来提高性能
var textVal = 'Year/Make/Model';
$('form li:contains("Vehicle Details") input').attr('value', textVal).on('focus', function(){
var element = $(this);
if (element.attr('value') == textVal)
element.attr('value','');
}).on('blur', function(){
var element = $(this);
if (element.attr('value') == '')
element.attr('value',textVal);
});
修改
您只需添加placeholder
属性
$('form li:contains("Vehicle Details") input').attr('placeholder', textVal);
但请注意,某些版本的IE
不支持此功能答案 1 :(得分:0)
如果HTML 5没问题,我会使用内置的占位符功能。这是一个小提琴:
$('form li:contains("Vehicle Details") input').attr('placeholder', "year/make/model");