我可以使用jquery来清空textarea字段或像输入框这样的ajax吗?
我总是在我的工作中使用这个片段:
基本上它会显示一个带有“你的电子邮件”作为值的文本框,当点击文本输入框时 – 该值变为空白…因此他们键入他们的电子邮件..如果他们没有键入电子邮件,它将重置回“你的电子邮件”。
我想用textarea做这个或类似的东西并将其转换为jQuery(也是jQuery中的上述代码)?
这应该做的伎俩:
将适用于输入和textareas – 无论你为每个输入设置什么默认值将持续存在。 按原样使用。
请看这里的小提琴: http : //jsfiddle.net/leifparker/DvqYU/2/
(这会将默认值拉入并存储在数据属性中)
HTML
JS
$('textarea, input[type=text]') .each(function(){ $(this).data('defaultText', $(this).val()); }) .focus(function(){ if ($(this).val()==$(this).data('defaultText')) $(this).val(''); }) .blur(function(){ if ($(this).val()=='') $(this).val($(this).data('defaultText')); });
编辑:
ANeves提出的另一种方法是使用HTML5 占位符属性,如下所示。 如果您不关心旧浏览器,您可以单独使用占位符 HTML(它本身可以工作,结果类似于上面的JS),或者如下所示,您需要添加JS回退。
小提琴: http : //jsfiddle.net/leifparker/DvqYU/14/
HTML
JS
function hasPlaceholderSupport() { var input = document.createElement('input'); return ('placeholder' in input); } if (!hasPlaceholderSupport()){ $('textarea, input[type=text], input[type=email]') .each(function(){ if ($(this).val()=='') $(this).val($(this).attr('placeholder')); }) .focus(function(){ if ($(this).val()==$(this).attr('placeholder')) $(this).val(''); }) .blur(function(){ if ($(this).val()=='') $(this).val($(this).attr('placeholder')); }); }
您可以将数据属性用于适用于textareas和输入框的通用解决方案 –
HTML
jQuery的
$("textarea, input[type=text]").bind('focus blur', function() { if ($(this).val() == '') $(this).val($(this).data('notext')); })
使用本机html属性title
指定掩码文本,然后应用以下脚本:
HTML
JS
$('input[type=text], textarea').focus(function() { var $ctrl = $(this); var title = $ctrl.attr('title'); $ctrl.removeClass('mask'); if ($ctrl.val()== title) { $ctrl.val(''); } }).blur(function() { var $ctrl = $(this); if ($ctrl.val().length == 0) { var title = $ctrl.attr('title'); $ctrl.val(title); $ctrl.addClass('mask'); } });
在这种情况下,您只需要为控件提供标题。
代码: http : //jsfiddle.net/pJrG9/7/
我就是这样做的,希望它有所帮助。
HTML
脚本
$("input[type=text]").focus(function(){ if($(this).val() == "Enter your email:") $(this).val(""); }).blur(function(){ if($(this).val() == "") $(this).val("Enter your email:"); }); $("textarea").focus(function(){ if($(this).val() == "Message:") $(this).val(""); }).blur(function(){ if($(this).val() == "") $(this).val("Message:"); });