2011-08-27 6 views
1

그래서 확인란을 선택했을 때만 제출하고 싶습니다. 확인란을 선택하지 않으면 다른 작업을하고 싶습니다. 나는이 확인란을 작동하도록 제출하려고했지만 아무 소용이 없습니다. 여기에 내가 가진 무엇 :jquery submit form with checkbox

나는 주위를 둘러 보았다 및 .trigger 및 .live 주변에 파고,하지만 메신저도 논리도 그 기능을 어떻게 작동하는지에 대해 생각하는 데 문제가 있었다
$('#checkbox').click(function() { 
    if($(this).attr('checked')) { 

    $("#form").submit(function() { 

     var newvals = $("#form").serialize(); // serialize data 

     $.post('save.php',newvals,function(data) { 
     $("#content").html(data); 
     }); // posting data and dumping response onto page  

     return false; 
     }); 

    } else { 

    alert(2); // placeholder for what i want to do otherwise 
    } 

    }); 

. 나는 '체크'박스와 '체크되지 않은'박스를 구별 할 수있는 한 그들을 사용하는 것에 반대하지 않습니다.

어떤 아이디어가 있습니까?

+0

코드가 올바른 것 같습니다. 무엇이 작동하지 않는지 또는 수행하고자하는 것에 대해 자세히 설명해 주시겠습니까? – Bojangles

+0

예. 기본적으로 수표에 사용자 입력, 필드 지우기 및 데이터 게시. 선택을 취소하면 게시 된 데이터로 필드를 다시 채워 사용자가 입력 한 내용을 표시합니다. 이 모든 작업을 수행하기위한 첫 번째 단계는 데이터를 게시하는 방법을 파악하는 것이 었습니다. 나는 논리가 작동하는 것을 알고 있지만 어떤 이유로 나는 게시 된 배열을 찾을 수 없다. – yoshi

답변

1

당신이 매번 당신이 체크 박스에 체크 형태 submit 이벤트 처리기를 부착하고 있습니다 : 나는 같은 것을 할 수 있습니다. 제출 이벤트를 트리거하지 않으며 예상 한대로 수행하지 않습니다.

확인란의 click 이벤트 처리기 외부에 submit 이벤트 처리기를 연결하고 확인란을 선택하면 양식 제출 이벤트를 트리거해야합니다. 사용해보기

$function(){ 

    $("#form").submit(function() { 

     var newvals = $("#form").serialize(); // serialize data 
     $.post('save.php',newvals,function(data) { 
     $("#content").html(data); 
     }); // posting data and dumping response onto page  

     return false; 
    }); 

    $('#checkbox').click(function() { 
    if(this.checked) {//Just this.checked will say whether its checked or not 
     //Now trigger the form submit event 
     $("#form").trigger('submit'); 
    } 
    else{ 
     alert(2); // placeholder for what i want to do otherwise 

     //I think you want to erase the textboxes. 
     //You can find all the input elements and set there value to empty 
     $("#form input").val(''); 
    } 
    }); 

}); 
+0

이 효과! 안녕! 하루 종일 바퀴를 돌고 있습니다. 고마워! – yoshi

0

로직을 뒤집어서 처리기를 양식 제출에 첨부하고 입력 제출 여부를 확인하십시오. 코드에서

$(function(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 

     if ($('#checkbox').is(':checked')) { 
      alert('submit'); 
     } else { 
      alert('do not submit'); 
     } 

    }); 
}); 
+0

(마크 업과 일치하도록 CSS 선택기를 변경해야하지만 필요하면이 로직이 표시되기를 바랍니다.) –

+0

아마 내가 더 많은 정보를 공유해야합니다 : 수표에 제출자의 텍스트 상자를 제출하고 지우고 싶습니다. 선택을 취소하십시오 : 사용자가 텍스트 상자에 입력 한 내용을 표시하고 싶습니다. – yoshi

+0

음, 음, 그 좋은 생각이 – yoshi