0

私が持っている単一のhrefをクリックしたときに、3つの異なるラベルを編集可能にしたい
:

<tr>
    <td align="left">PLZ:</td>

    <td>
        <label for="name" class="control-label">
            <p class="text-info">
                <label style="color: #662819;" id="plz"></label>
                <i class="icon-star"></i>
            </p>
        </label>
        <input type="text" class="edit-input" />

        <div class="controls">
            <a class="edit" href="#">Daten sichern</a>
        </div>
    </td>
</tr>

この 1 つのラベルを次のように変更します。

CSS:

.edit-input {
    display:none;
}

JQuery:

$(function() {
    $('a.edit').on("click", function(e) {
        e.preventDefault();
        var dad = $(this).parent().parent();
        var lbl = dad.find('label');
        lbl.hide();
        dad.find('input[type="text"]').val(lbl.text()).show().focus();
    });

    $('input[type=text]').focusout(function() {
        var dad = $(this).parent();
        $(this).hide();
        dad.find('label').text(this.value).show();
    });
});

2つ以上のラベルでそれを行う方法??? 次のもののように...:

<tr>
      <td align="left">Strasse:</td>
      <td>
        <label for="name" class="control-label">
            <p class="text-info">
                <label style="color: #662819;" id="street"></label>
                <i class="icon-star"></i>
            </p>
        </label>
        <input type="text" class="edit-input" />  
      </td>
</tr>

等々...

4

1 に答える 1

1

異なるラベルを同時に編集可能にするには、1 つのリンクをクリックしたときに、次のコードに示すように、JQuery の each 関数を使用できます。

$('a.edit').on('click',function(e){
    e.preventDefault();

    //Search for .control-label items
    $('label.control-label').each(function(key,item){
        var label = $(item);          
        label.hide();
        label.siblings('input.edit-input').val(label.text()).show().focus();
    });

});

それが役に立てば幸い!

于 2013-09-20T21:52:39.587 に答える