2011-10-02 36 views
1

我有問題在添加新的,當我添加新的輸入,並檢查它下一次設置點擊按鈕我沒有被檢查的值。如何解決它?添加新的輸入:複選框,並沒有值

DEMOhttp://jsfiddle.net/G4QRp/

$(function() { 
    $('a.add_input').live('click', function (event) { 
     event.preventDefault(); 
     var $class = '.' + $(this).closest('div.find_input').find('div').attr('class').split(" ")[0]; 
     var size_un = $($class).length; 
     var $this = $(this), 
      $div = $this.closest($class), 
      $clone = $div.clone().hide().insertAfter($div).fadeIn('slow'); 
     $clone.find('.adda').not(':has(.remove_input)').append('<div class="mediumCell"><a href="" class="remove_input"></a></div>'); 
     $clone.find('input').val('').prop('checked', false); 
     $this.remove(); 
     var size_un = $($class).length---1; 
     $($class + ':last input:checkbox').prop('name', 'checkbox_units[' + size_un + '][]'); 
     console.log($($class + ':last input:checkbox').prop('name')); 
    }); 
}); 
+1

我還不清楚預期的行爲是什麼。 –

+1

您可以簡化代碼以查明實際問題嗎? – David

+0

如果您在使用英語解釋問題時遇到問題,請嘗試在文本旁邊添加一個截圖,說明您希望複選框如何像 – XGreen

回答

0

你的代碼始終會清除所有它增加了複選框的值:

$clone.find('input').val('').prop('checked', false); 

它的正常工作,雖然這是相當混亂。警報正確顯示了已選中的複選框,但由於您的代碼已將值設置爲「',因此它們都是空的。如果你像這樣改變它:

$clone.find('input').prop('checked', false); 

它顯示的值與原始複選框相同。

您可能想要考慮使用「data-」屬性而不是「class」字符串來存儲類似「add_units」類名稱的內容。