1

次のjqueryを使用して、Railsビューにフォーム要素を動的に追加しています..追加ボタンは機能しますが、削除ボタンはクリックできません..

$(document).ready(function() {
           $('#btnAdd').click(function() {
               var num     = $('.clonedInput').length;
               var newNum  = new Number(num + 1);

               var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);

               newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum);
               $('#input' + num).after(newElem);
               $('#btnDel').attr('disabled','');

               if (newNum == 5)
                   $('#btnAdd').attr('disabled','disabled');
           });

           $('#btnDel').click(function() {
               var num = $('.clonedInput').length;

               $('#input' + num).remove();
               $('#btnAdd').attr('disabled','');

               if (num-1 == 1)
                   $('#btnDel').attr('disabled','disabled');
           });

           $('#btnDel').attr('disabled','disabled');
       });

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

<form id="myForm">
    <div id="input1" style="margin-bottom:4px;" class="clonedInput">
        Name: <input type="text" name="name1" id="name1" />
    </div>

    <div>
        <input type="button" id="btnAdd" value="add another name" />
        <input type="button" id="btnDel" value="remove name" />
    </div>
</form>

ありがとう!!!!!

4

5 に答える 5

1

このフィドルを試してみてくださいhttp://jsfiddle.net/269HU/

use $("#id").attr('disabled',false);   --> for enable

use $("#id").attr('disabled',true);   --> for disable
于 2012-05-25T07:19:38.260 に答える
0

削除してみてください

.click(function() {

これとともに

.on('click',function() {
于 2012-05-25T06:37:36.147 に答える
0

ここで答えが見つかり、説明されています... http://digitalmeaning.co/thoughts/using-jquery-to-duplicate-a-section-of-a-form-maintaining-accessibility/

「jQuery の以降のバージョンでは、ボタン コードを次のいずれかに変更します。

$('#btnDelW1').attr('無効',true);

また

$('#btnDelW1').attr('無効',false);

于 2012-05-25T06:53:08.213 に答える
0

$('#btnDel').attr('disabled', '');プロパティを実際に削除するわけではありませんdisabled- 空の文字列に設定するだけで、空白の場合でもアクティブです! 代わりにこれを使用してください:

           $('#btnDel').removeAttr('disabled');

jsFiddle: http://jsfiddle.net/LzdHg/

于 2012-05-25T06:44:03.850 に答える
-1

jQueryのライブメソッドを試してください

$('#btnDel').live('click', function() {
               var num = $('.clonedInput').length;

               $('#input' + num).remove();
               $('#btnAdd').attr('disabled','');

               if (num-1 == 1)
                   $('#btnDel').attr('disabled','disabled');
           });

http://api.jquery.com/live/

于 2012-05-25T06:37:35.820 に答える