Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入字段中的默认文本_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 输入字段中的默认文本

Javascript 输入字段中的默认文本,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我不知道这是否有一个特殊的名称,但是有没有一种简单的方法来设置输入字段中的默认文本,如果文本框为空,它会在聚焦时消失,在模糊时重新出现?这里是 这个词是 我鼓励你使用插件,除非你有足够的时间开发和测试。编写此代码时,需要注意许多问题和副作用 验证包含水印文本的字段是否为“空”。 从而区分水印文本和输入文本 不提交水印文本 防止用户键入水印文本本身:) 设置水印文本的样式 等等,等等 您可以尝试这样做:使用title属性存储默认文本 $(function(){ $(".makedefa

我不知道这是否有一个特殊的名称,但是有没有一种简单的方法来设置输入字段中的默认文本,如果文本框为空,它会在聚焦时消失,在模糊时重新出现?

这里是

这个词是

  • 我鼓励你使用插件,除非你有足够的时间开发和测试。编写此代码时,需要注意许多问题和副作用

    • 验证包含水印文本的字段是否为“空”。 从而区分水印文本和输入文本
    • 不提交水印文本
    • 防止用户键入水印文本本身:)
    • 设置水印文本的样式
    • 等等,等等

    您可以尝试这样做:使用title属性存储默认文本

    $(function(){ 
    
    $(".makedefault").bind("blur",function(){
    
    if($(this).val().length == 0)
    {
       $(this).val($(this).attr('title'));
    }
    });
    $(".makedefault").bind("focus",function(){
    
    if($(this).val() == $(this).attr('title'))
    {
       $(this).val("");
    }
    });
    

    }))

    该功能称为水印,可以通过多种方式实现,其中之一是

    onfocus="if(this.value=='Enter Email')this.value=''"
    onblur="if(this.value=='')this.value='Enter Email'"
    

    这适用于电子邮件文本框。

    您可以使用新的HTML5占位符属性

    编辑:更新以使用更多的HTML5/jQuery热,HTML5数据存储

    <input type="text" placeholder="type here" data-placeholder-text="type here" />
    
    你可以使用这个插件(我是合著者)

    它克隆一个输入字段并将其放在那里

    它可以在IE、Firefox、Chrome甚至iPhone Safari上运行,而iPhone Safari存在着著名的焦点问题

    这样,您就不必担心在提交之前清除输入字段


    如果只想使用HTML5,只需在输入字段中使用属性“占位符”

    以下是我的方法(使用jQuery):

    <input id="myBox" type="text" />
    
    <script>
      // Input field and default text
      var $element = $('#myBox');
      var defaultText = 'Hello World';
    
      $element.focus(function(){
        // Focused
        $element.removeClass('defocused').addClass('focused');
        if($element.val() == defaultText)
          $element.val('');
      }).blur(function(){
        // Defocused
        $element.removeClass('focused').addClass('defocused');
        if($element.val() == '')
          $element.val(defaultText);
      });
    
      // Initialization
      $element.blur();
    </script>
    
    
    //输入字段和默认文本
    var$element=$(“#myBox”);
    var defaultText='helloworld';
    $element.focus(函数(){
    //专注
    $element.removeClass('disfocused').addClass('focused');
    如果($element.val()==defaultText)
    $element.val(“”);
    }).blur(函数(){
    //散焦
    $element.removeClass('focused').addClass('disfocused');
    如果($element.val()='')
    $element.val(默认文本);
    });
    //初始化
    $element.blur();
    
    按照建议使用插件。将来验证并使用数据属性不是更好吗?通过这种方式,代码将来是兼容的,将作为HTML5进行验证,并且具有语义意义。它现在正式成为HTML(5)规范的一部分,因此所有现代浏览器都支持它作为内联HTML。请看下面我的回答以获得解释。@The_Butcher:谢谢,我很高兴我们都听到了互相帮助的声音,但我们今天真的应该大显身手,而不是生活在这些javascript黑客的世界中。ye,不幸的是,许多公司和企业无法从Win XP迁移,因此从ie6,因为他们的大多数软件都是在ie6上工作的:/我理解这一点。但我的解决方案不仅在所有浏览器中都会优雅地退化,而且不需要插件,而且它与未来100%兼容。未来的代码就是我所要问的:)一个虚拟的-1对于没有实际投票HTML5答案的屠夫来说。(据我所知)在我阅读时,它没有投票权,但我将给它一个。很好的解决方案,甚至不知道新属性!是否有任何理由不使用$(this.attr('placeholder')并避免重复?IIRC,即使是糟糕的浏览器也可以访问意外的属性。我只是想让你知道4个链接中有3个被破坏了。
    $(document).ready(function() {
    
        var $input = $('#id_of_input_element');
        $input.focus(function() {
            if($(this).val() == $(this).data('placeholder-text')) { 
                $(this).val('') 
            }
        }).blur(function() {
            if($(this).val() == '') {
                $(this).val($(this).data('placeholder-text'));
            }
        }).trigger('blur');
    }):
    
    <input id="myBox" type="text" />
    
    <script>
      // Input field and default text
      var $element = $('#myBox');
      var defaultText = 'Hello World';
    
      $element.focus(function(){
        // Focused
        $element.removeClass('defocused').addClass('focused');
        if($element.val() == defaultText)
          $element.val('');
      }).blur(function(){
        // Defocused
        $element.removeClass('focused').addClass('defocused');
        if($element.val() == '')
          $element.val(defaultText);
      });
    
      // Initialization
      $element.blur();
    </script>