2012-05-07 5 views
0

class = "checkbox"인 스팬이 클릭되었을 때 폼에 숨겨진 입력 필드를 추가하려고하고 체크 표시가있는 스팬을 클릭하면 해당 필드가 제거됩니다 .변수를 사용하여 jQuery로 양식 입력 필드 추가 및 제거

입력을 추가 할 수 있지만 나는 그것을 제거 할 수 없습니다.

내 HTML :

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

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

내 자바 스크립트 :

$(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

을 대신에게 클래스의 이름을 지정하고 jQuery를 매개 변수에보다 구체적인 점점 시도 - '문입니다, 그리고 필요 세미콜론 바로 뒤에? – gcochard

답변

2

난 당신이 .remove() 메서드 호출 후 appNum--을 넣어야 할 것 같아요. 사용해보기 :

+0

답장을 보내 주셔서 감사 합니다만, 앱을 옮겨서는 안됩니다. 아니요. 작동하지 않았습니다. – nitsuj

+0

그래서 같은 코드를 사용해 보시고 그것의 클래스로 선택하십시오 (rposky가 말한 것처럼), 그것의 id가 아닌 –

+0

코드를 업데이트했습니다. –

2

id 태그에 의해 여러 개의 DOM 요소가있을 수 있으므로 해당 id와 일치하지만 올바른 것이 아닌 요소가 제거되었을 수 있습니다.

당신이`appNum ++`와`appNum는 알고 있습니다 즉, 부모 요소를 추가하여

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

당신은 클래스 이름을 대신 말하지만 여전히 셀렉터에서'.' 대신'#'을 사용합니까? –

+0

나는 그 ID를 가진 페이지의 유일한 요소 임에도 불구하고 (부모 폼 ID를 사용하여) 시도했다. 그것은 작동하지 않았다. – nitsuj

+0

사실, 나는 그가 할당 할 클래스 이름을 몰랐다 : p – rposky

관련 문제