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

答案在这里找到并解释...... http://digitalmeaning.co/thoughts/using-jquery-to-duplicate-a-section-of-a-form-maintaining-accessibility/

“对于更高版本的 jQuery,将按钮代码更改为

$('#btnDelW1').attr('disabled',true);

或者

$('#btnDelW1').attr('disabled',false);

于 2012-05-25T06:53:08.213 回答
0

尝试删除

.click(function() {

有了这个

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

$('#btnDel').attr('disabled', '');实际上并没有删除该disabled属性 - 它只是将其设置为空字符串,并且在空白时它仍然处于活动状态!改用这个:

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

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

于 2012-05-25T06:44:03.850 回答
-1

试试jQuery的live方法

$('#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 回答