如何启用onclick以清除输入字段? jQuery的

时间:2011-01-03 18:22:39

标签: javascript jquery

$('<p><input type="text" class = "class-'+ (++i)  +'" onclick="'(+ this.value = ''; +)'" value="Enter Choice #' + i + '"/></p>')

我不确定这是否是正确的语法,但无论我使用什么都不行。有帮助吗?感谢

5 个答案:

答案 0 :(得分:5)

HTML:

<input type="text" class="class-1" value="Enter Choice #1">
<input type="text" class="class-2" value="Enter Choice #2">

JQUERY:

$(document).ready(function() {
    $('input[class^="class-"]').focus(function() {
        var $input = $(this);

        if($input.val() == $input.data('default_val') || !$input.data('default_val')) {
            $input.data('default_val', $input.val());
            $input.val('');
        }
    });

    $('input[class^="class-"]').blur(function() {
        var $input = $(this);

        if ($input.val() == '') $input.val($input.data('default_val'));
    });
});

上面的代码清除文本字段获得焦点时的值,并在textfield为空焦点时丢失焦点(模糊)时添加默认值。

更新了小提琴:http://jsfiddle.net/K3Sx7/4/

编辑:更新代码以符合问题。

答案 1 :(得分:3)

在输入字段中添加ID:

<input id="myinput"...

然后在$(document).ready(...电话中添加此代码:

$('#myinput')                    // get element whose id is 'myinput'
    .click(function() {          // bind a click handler
        $(this).val('')          // clear field
               .unbind('click'); // unbind click handler to avoid field being cleared again
     })

答案 2 :(得分:2)

我认为你可以在没有jQuery的情况下做到这一点 试试这个

<p><input type="text" class = "class-1" onclick="this.value='';" value="Enter Choice # 1"/></p>

答案 3 :(得分:0)

var i = 0;
$('<input type="text" class="class-'+ ++i +'" value="Enter Choice #' + i + '"/>')
   .click(function(){
       this.value = '';
    })
    .wrap('<p />')
    .parent()
    .appendTo('#container');

http://jsfiddle.net/jruddell/FVqjQ/

答案 4 :(得分:0)

要像这样内联,你需要将this.value=''作为字符串的一部分:

$('<p><input type="text" class = "class-'+ (++i) +'" onclick="this.value=\'\'" value="Enter Choice #' + i + '"/></p>');

注意" onclick="this.value=\'\'",其中单引号被转义以防止主字符串被终止。

Here's a working example for you.