所以我想只在复选框被选中时提交(我想在复选框未被选中时做其他事情)。我一直试图让这个复选框提交工作,但不是没有用处。我有:
$('#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
事件处理程序。它不会触发提交事件并执行您期望的操作。
$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');
}
});
});