Jquery提交表单与复选框



所以我想只在复选框被选中时提交(我想在复选框未被选中时做其他事情)。我一直试图让这个复选框提交工作,但不是没有用处。我有:

$('#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
    }
});

我环顾四周,正在摸索与.trigger.live,但我有问题,甚至考虑如何逻辑将甚至与这些功能一起工作。我不反对使用它们,只要我能区分"已选中"框和"未选中"框。

任何想法?

在您的代码中,您每次检查复选框时都附加submit事件处理程序。它不会触发提交事件并执行您期望的操作。

你应该在checkbox的click事件处理程序之外附加submit事件处理程序,并在checkbox被选中时触发form的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('');
    }
   });
});

将逻辑颠倒过来-将处理程序附加到表单提交,并在那里检查您的输入是否被检查。我可以这样做:

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

最新更新