1

私の意図は、<input>空白のフィールドが 1 つだけ残るたびに新しいフィールドが作成されるようにすることです。したがって、一番上のフィールドがフォーカスを失ったときです。これは 1 回だけ発生します (したがって、<input>作成できるフィールドは 3 つだけです。

私の作業例は、http://sas98.user.srcf.net/guestlist/の 4 番の下にあります。

コードは次のとおりです。

<div id="names">
<p><input class="input" type="text" name="name1" /></p>
<p><input class="input" type="text" name="name2" /></p>
</div>

<script type="text/javascript">
$(document).ready(function() {
var name = $("<p><input class='input' type='text' /></p>");
    $('.input').blur(function() {
        if($(this).val().length>0) {
            $('#names').append(name.clone());
        }
    });
});
</script>

編集:

            $('#names').append(name);

に変更

        $('#names').append(name.clone());

立ち往生する前に、さらに数回機能させます。気まぐれなようです - パターンが見えません。

4

4 に答える 4

2

問題は、イベント ハンドラーが更新されていないことです。Jquery < 1.7 では $.live() を使用してぼかしをバインドし、新しいバージョンでは $.on() を使用します

于 2012-04-06T22:00:01.613 に答える
1

これはあなたが思うように機能します:http://jsfiddle.net/YFJA6/

$('#names').on({
blur: function() {
    if($(this).val().length>0) {
        $('#names').append('<p><input class="input" type="text" /></p>');
    }
}
}, 'input');
于 2012-04-06T22:08:25.617 に答える
0

これは私のために働いた:

$('#selector').append(htmlcontent.clone(true));

于 2016-02-08T21:40:36.763 に答える
0

これは、(新しい入力が作成される前に) .blur() ハンドラーを 1 回だけ追加するためです。したがって、最新の入力には、blur イベントのハンドラーも割り当てる必要があります。

興味のために、試してみてください:

<div id="names">
<p><input class="input" type="text" name="name1" /></p>
<p><input class="input" type="text" name="name2" /></p>
</div>

<script type="text/javascript">
$(document).ready(function() {    
    $('.input').blur(addBlur());
});
function addBlur() {
        var name = $("<p><input class='input' type='text' /></p>");
        if($(this).val().length>0) {
            var newBox = name.clone();
            newBox.blur(addBlur());
            $('#names').append(name.clone());
        }
    }
</script>
于 2012-04-06T21:52:49.487 に答える