2

有没有办法像在 ExtJS 中那样在输入字段中有类似于 emptyText 的东西?

我尝试使用更改的 CSS 设置值。但是,该值与表单一起提交,并且在我单击输入字段后它并没有消失。我需要支持IE7及以上

任何帮助,将不胜感激。

4

2 回答 2

3

您正在寻找的是placeholder.. W3School

<input type="text" placeholder="Hii" />

您可以找到适用于 ie 和不支持占位符的其他旧版本浏览器的 polyfills..

您可以为不支持占位符的浏览器添加此代码,使其工作方式与在良好浏览器中的工作方式相同。*它需要 JQuery

// This adds 'placeholder' to the items listed in the jQuery .support object. 
jQuery(function() {
   jQuery.support.placeholder = false;
   test = document.createElement('input');
   if('placeholder' in test) jQuery.support.placeholder = true;
});


// This adds placeholder support to browsers that wouldn't otherwise support it. 
$(function() {
   if(!$.support.placeholder) { 
      var active = document.activeElement;
      $(':text').focus(function () {
         if ($(this).attr('placeholder') != '' && $(this).attr('placeholder') != undefined && $(this).val() == $(this).attr('placeholder')) {
            $(this).val('').removeClass('hasPlaceholder');
         }
      }).blur(function () {
         if ($(this).attr('placeholder') != '' && $(this).attr('placeholder') != undefined && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
            $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
         }
      });
      $(':text').blur();
      $(active).focus();
      $('form:eq(0)').submit(function () {
         $(':text.hasPlaceholder').val('');
      });
   }
});
于 2012-11-06T18:53:29.247 回答
2

Rajat 的答案是正确的,但仅适用于 HTML5。如果您想要一个仅使用纯 javascript 而没有任何库的 IE(和其他浏览器)上工作的答案,您可以查看这个问题

于 2012-11-06T19:05:35.507 回答