2010-09-10 70 views
0

因此,如果選中複選框,我會將文本和文本框動態添加到頁面。但是,動態部分是,後面的代碼創建一個CheckBoxList並將代碼表中的文本附加到每個複選框。因此,我正在查找包含「chkCheckBox」的ID的任何複選框。從那裏,我可以檢查複選框的旁邊是否是「其他」,如果是這樣,請在下面最後一行插入HTML行。如何刪除我使用JQuery動態放置的HTML?

$("input:checkbox[id*=chkSomeCheckBox]").click(function() { 
     if ($(this).next().html() == "Other") { 
      $("<span> : </span><input type='textbox'>").insertAfter($(this).next()); 
     } 
    }); 

問題:我遇到的問題是很明顯,如果他們取消選中該複選框,它追加ANOTHER文本框旁邊的第一個,這樣下去。

幫助:我有搞清楚如何檢查,如果他們把檢查在複選框,如果真的只是放在HTML問題。其次,如果他們取消選中符合條件的複選框(==「其他」),則刪除我動態放置的文本框。

我想要使用JQuery「remove()」事件,但我不確定如何配合(本)與:檢查選擇

任何建議

回答

1
$("input:checkbox[id*=chkSomeCheckBox]").click(function() { 
     if ($(this).next().html() == "Other" && $(this).is(':checked')) { 
      $("<span> : </span><input type='textbox'>").insertAfter($(this).next()); 
     } 
     else if($(this).next().html() == "Other"){ 
      $(this).next().empty(); 
     } 
}); 
0
$("input:checkbox[id*=chkSomeCheckBox]").click(function() { 
     if ($(this).next().html() == "Other" && $(this).is(':checked')) { 
      $("<span> : </span><input type='textbox'>").insertAfter($(this).next()); 
     } 
     else if($(this).next().html() == "Other"){ 
      // remove html 
     } 
}); 

是說去想想更好的方法可以做到這一點...這似乎有點「輪?房子「,因爲它是:p我敢肯定,必須有更簡單的方法