2012-05-07 42 views
0

我想添加一個隱藏的輸入字段的表單時,類=「複選框」的跨度被點擊,並刪除相同的字段時,點擊帶有複選標記的跨度。使用變量添加和刪除表單輸入字段與jQuery

我可以添加輸入,但我不能刪除它

我的HTML:

<span title="Here's My Title" class="wishlistcheck checkbox">1</span> 

<form id="wishlistform"></form> 

我的javascript:

$(document).ready(function() { 

    var appNum = 0; 

    $("span.wishlistcheck").click(function() { 
     var el = $(this); 
     var appName = el.attr("title"); 

     var isChecked = el.hasClass('checkmark'); 
     if(!isChecked) { 
      el.removeClass('checkbox'); 
      el.addClass('checkmark'); 

      appNum++ 

      $("#wishlistform").append("<input id=\"" + appName + "\" type=\"hidden\" name=\"product_" + appNum + "\" value=\"" + appName + "\">"); 


     } else { 
      el.removeClass('checkmark'); 
      el.addClass('checkbox'); 

      appNum-- 

      $("input#" + appName).remove(); 




     } 
    }); 
}); 
+2

大家都知道,'appNum ++'和'appNum - '是報表,並且需要分號後對吧? – gcochard

回答

2

我想你必須把appNum--的一個.remove()方法調用之後。試試看:

$(document).ready(function() { 
    var appNum = 0; 
    $("span.wishlistcheck").click(function() { 
     var el = $(this); 
     var appName = el.attr("title"); 
     var isChecked = el.hasClass('checkmark'); 
     if(!isChecked) { 
      el.removeClass('checkbox'); 
      el.addClass('checkmark'); 
      appNum++ 
      $("#wishlistform").append("<input class=\"" + appName + "\" type=\"hidden\" name=\"product_" + appNum + "\" value=\"" + appName + "\">"); 
     } else { 
      el.removeClass('checkmark'); 
      el.addClass('checkbox'); 
      appNum-- 
      $("input[class=" + appName + "]").remove(); 
     } 
    }); 
}); 
+0

感謝您的回答,但移動appNum--無效。 – nitsuj

+0

所以嘗試使用相同的代碼,但選擇它的類(如rposky說),一個不是它的ID –

+0

我更新了代碼。 –

2

你可能有通過ID標籤的多個DOM元素,因此它可以被刪除匹配的ID,但不正確的一個元素。

嘗試給它一個類名來代替,讓你的jQuery參數更具體的加入父元素,即

$('#wishlistform input#' + appName).remove(); 
+0

你說給它一個類名,而你仍然使用'#'而不是'''在選擇器中? –

+0

我也試過(使用父窗體id,即使它是該頁面上唯一具有該ID的元素)。它沒有工作。 – nitsuj

+0

確實,我不知道他會分配什麼樣的類名:p – rposky