2010-04-22 4 views
4

.remove()을 사용하면 모두 선택 확인란이 서버에 제출되지 않습니다.jQuery .remove()를 사용하지 않고 양식 요소를 삭제하는 방법이 있습니까?

그러나 제출할 때 모두 선택 확인란이 웹 페이지에서 "물리적으로"제거되므로 사용자가 볼 수 있습니다.

대신 모든 확인란을 선택 취소하면 서버 쪽이 아닌 완벽하게 표시됩니다. 즉, 페이지에 입력을 유지하고 양식 배열의 요소를 제거한 다음 전송합니다.

양식을 서버로 보내기 전에 요소의 [] 배열을 조작하여 삭제할 수 있습니까?

감사합니다.

답변

7

당신이 체크 박스를 사용하지 않도록 설정하면이 양식의 나머지와 함께 전송되지 않습니다 : 제출 후 즉시 다시 활성화하는 동안

$('#myInp').attr("disabled", true); 

이 방법을 사용하면 요소를 비활성화 할 수 있습니다 :

를 순간
$('#myForm').submit(function() 
{ 
    var $myInp = $('#myInp'); 
    $myInp.attr("disabled", true); 
    window.setTimeout(function() 
    { 
     $myInp.attr("disabled", false); 
    }, 0); 
}); 
+0

깨끗합니다. 감사합니다. –

1

, 그것은 폼 데이터 세트를 조작 할 수는 없습니다 (그리고 something that I want to see in future versions of HTML too의), 그러나 할 수 있습니다 가짜 일시적 동안 입력을 비활성화하여 제출

$form.submit(function(){ 
    $input.attr('disabled', true); 
    setTimeout(function(){ 
     $input.removeAttr('disabled'); 
    }, 0); 
}); 
2

Andy E와 munch는 모두 실행 가능한 솔루션을 제공합니다. 여기에 또 다른입니다 :

다른로 교체, 양식 제출 어떤 이유로 실패하는 경우 물론

$('#select-all-checkbox').replaceWith('<input type="checkbox"/>'); 

, 이것은 문제가 발생할 수 있습니다 불활성 확인란을 선택합니다.

관련 문제