如何在输入字段中保留一些默认文本?

时间:2014-08-14 11:18:46

标签: javascript jquery html

我不知道我是否正确地问它,所以请原谅。所以这就是它。我有一个文本输入字段。我已经有一些占位符文本了。但是,当用户点击该字段时,我希望占位符文本消失,并在那里显示一些默认文本,用户无法删除。 因此,当用户提交表单时,收到的数据应采用这种格式 - “我保留的默认文本”+“用户提供的文本”。我该怎么做。

这是我输入字段的例子。

<input type="text" placeholder="defaultText" class="input">

2 个答案:

答案 0 :(得分:3)

http://jsfiddle.net/429jspyn/2/

$(function(){
    var dft = 'DEFAULT - ';
    $('input.input').keyup(function(evt){
        /* Key up event to catch all keys, keypressed doesn't catch i.E. 
        backspace*/
        /* If input value is empty don't alter it, that keeps input clean */
        if($(this).val() != ''){
            /* attach value of input to variable to alter it in future */
            var txt = $(this).val();
            /* txt.replace removes already added default text to prevent infinite prepending */
            $(this).val(dft + txt.replace(dft, ''));
        }
    }).keydown(function(evt){
        /* Key down is to catch user before he deletes part of default text and remove whole for him. That keeps it clean in future. */
        if($(this).val() == dft){
            /* Set input empty when user's trying to delete default text */
            $(this).val('');
            /* blocks further parsing */
            return false;
        }
    });
});

编辑://更新代码,应该是好的:) EDIT2://添加了评论

答案 1 :(得分:0)

为您的输入添加id属性

<input type="text" placeholder="defaultText" class="input" id="myInput">

并点击事件执行此操作

$("myInput").click( function() {   
    this.html("defaultText");
    this.attr("disabled","disabled");
}