Jquery输入复杂的递增混乱

时间:2011-12-16 06:07:47

标签: jquery

我有这个输入文本字段,如果你focus()文本将消失,最初会说答案1。如果你blur()文本将会回来。

<input type="button" id="btnAdd" value="Add Answer" />
      <div id="formanswer1" style="margin-bottom:4px;" class="clonedInput">Answer:<input type="text" id="formanswer1" value="Answer 1" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Answer 1':this.value;"/></div>
</div>


<script>

$('#btnAdd').click(function() {
    var num     = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
    var newNum  = new Number(num + 1);      // the numeric ID of the new input field being added

    // create the new element via clone(), and manipulate it's ID using newNum value
    var newElem = $('#formanswer' + num).clone().attr('id', 'formanswer' + newNum).attr("onblur","this.value=!this.value?'Answer "+newNum+"':this.value;");

    // manipulate the name/id values of the input inside the new element
    newElem.children(':first').attr('id', 'formanswer' + newNum).attr('value','Answer '+newNum).attr('onblur',"this.value=!this.value?'Answer "+ newNum +"':this.value;");

    // insert the new element after the last "duplicatable" input field
    $('#formanswer' + num).after(newElem);

});

</script>

我无法弄清楚如何实现onblur()价值。我不确定我的语法是否错误,但是我无法想出这个。

2 个答案:

答案 0 :(得分:0)

而是直接Js将此用于onblur

.attr( '的onblur',函数(){

THIS.VALUE =!THIS.VALUE? “回答”+ newNum:this.value; });

答案 1 :(得分:0)

<强> HTML:

<div>
<input type="button" id="btnAdd" value="Add Answer" />
<div id="formanswer1" style="margin-bottom:4px;" class="clonedInput">Answer:<input type="text" id="formanswer1" value="Answer 1" /></div>
</div>

<强> jQuery的:

$('input#formanswer1').on('click',function(){
       $(this).val("");
});


$('input#formanswer1').on('blur',function(){
    if($(this).val() === ""){
        $(this).val("Answer 1")
    }
});

检查小提琴:http://jsfiddle.net/gSQ94/12/