对以下功能进行编码的最有效方法是什么?如果他们试图提交空表格并清除表格以便他们进入,则会警告人们?
$("#newsletter-subscribe").focus( function() {
if(this.value=='Your email address'){
this.value='';
}
});
$("#newsletter-subscribe").blur( function(){
if(this.value==''){
this.value='Your email address'
};
});
$("#subscribe").bind("submit", function(e){
email = $("input#newsletter-subscribe").val();
$("input#newsletter-subscribe").val(email);
if(jQuery.trim(email) == 'Your email address' || jQuery.trim(email) == '') {
alert('Please enter your email address to subscribe.');
return false;
}
});
答案 0 :(得分:3)
您可能需要查看jQuery Watermark插件。
此插件允许您在表单元素上添加默认文本,这些表单元素看起来像水印或作为占位符...以防止不需要的信息发送到服务器的方式工作
答案 1 :(得分:1)
这是我在那种情况下使用的一段代码,检查是否可以使用HTML5占位符[http://dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute]支持,如果没有,则提供
if(!('placeholder' in document.createElement('input'))){
$('input[type="text"][placeholder] , textarea[placeholder]').each(function(){
if('' != $(this).attr('placeholder')){
if('' == $(this).val() || $(this).attr('placeholder') == $(this).val()){
$(this).val($(this).attr('placeholder')).css('color','gray');
}
}
});
$('input[type="text"][placeholder], textarea[placeholder]').focus(function(){
if($(this).attr('placeholder') == $(this).val()){
$(this).val('');
$(this).css('color','#272727');
}
}).blur(function(){
if('' == $(this).val()){
$(this).css('color','gray').val($(this).attr('placeholder'));
}
});
}
所以只需写下你的元素:
<input name="foo" type=text" placeholder="Placeholder text" />
答案 2 :(得分:0)
最有可能的方法是更有效地做到这一点。但是你的代码很好。没有循环没有大规模的数据结构。没有理由花时间优化这个。