1

こんにちは、このチュートリアルからインスピレーションを得た後、新しいフォーム フィールドを追加してフォーム フィールドを削除しようとしています - http://bootsnipp.com/snipps/dynamic-form-fields

私の現在の問題は、すべての値を時系列で削除してリセットすることです。

<input type="hidden" name="count" value="1" />
<div class="control-group" id="fields">
           <label class="control-label" for="field1">Nice Multiple Form Fields</label>
           <div class="controls" id="profs"> 
             <div class="input-append">
               <input autocomplete="off" class="span3" id="field1" name="prof1" type="text" placeholder="Type something (it has typeahead too)" data-provide="typeahead" data-items="8" 
data-source='["Aardvark","Beatlejuice","Capricorn","Deathmaul","Epic"]'/><button id="b1" onClick="addFormField()" class="btn btn-info" type="button">+</button>
             </div>
             <br /><small>Press + to add another form field :)</small>
           </div>
         </div>

Javascript :-

var next = 1;

function addFormField(){
    var addto = "#field" + next;
    next = next + 1;
    var newIn = '<br /><br /><input autocomplete="off" class="span3" id="field' + next + '" name="field' + next + '" type="text" data-provide="typeahead" data-items="8"><button id="b1" onClick="$(this).parent().remove();" class="btn btn-info" type="button">+</button>';
    var newInput = $(newIn);
    $(addto).after(newInput);
    $("#field" + next).attr('data-source',$(addto).attr('data-source'));
    $("#count").val(next);  
}

親要素が削除されていますが、次のカウンターが正しくリセットされていません。非表示およびすべての新しく作成されたフォームで:-

デモのみを追加:- http://bootsnipp.com/snipps/dynamic-form-fields

バグのある削除デモを追加します:- http://jsfiddle.net/6dCrT/2/

誰か助けてください。

ありがとう

4

2 に答える 2

1

試す:

function addFormField(){
    var addto = "#field" + next;
    next = next + 1;
    var newIn = '<br /><br /><input autocomplete="off" class="span3" id="field' + next + '" name="field' + next + '" type="text" data-provide="typeahead" data-items="8"><button id="b'+next+'" onClick="$(this).prev().remove();$(this).remove();" class="btn btn-info" type="button">-</button>';
    var newInput = $(newIn);
    console.log(addto);
    $(addto).after(newInput);
    if(next>1)
        $("button#b"+next).after(newInput);
    $("#field" + next).attr('data-source',$(addto).attr('data-source'));
    $("#count").val(next);  
}

DEMO FIDDLE

于 2013-09-23T06:00:47.840 に答える