我可以使用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')); }); } 

我认为你指的是像这样的占位符:

http://andrew-jones.com/jquery-placeholder-plugin/

希望能帮助到你。

您可以将数据属性用于适用于textareas和输入框的通用解决方案 –

HTML

 

jQuery的

 $("textarea, input[type=text]").bind('focus blur', function() { if ($(this).val() == '') $(this).val($(this).data('notext')); }) 

演示 – http://jsfiddle.net/3jwtA/

使用本机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:"); });