所以我只想在选中复选框时提交(我想在未选中复选框时执行其他操作)。我一直试图让这个复选框提交工作,但没有用。这就是我所拥有的:
$('#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
,但是我甚至在考虑逻辑如何与这些功能一起工作时遇到了问题。我不反对使用它们,只要我可以区分“已选中”框和“未选中”框。
有什么想法吗?
答案 0 :(得分:1)
在您的代码中,每次选中复选框时,都会附加表单submit
事件处理程序。它不会触发提交事件并按照您的期望行事。
您应该在复选框的click事件处理程序之外附加提交事件处理程序,并在选中复选框时触发表单的提交事件。试试这个
$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('');
}
});
});
答案 1 :(得分:0)
从内到外打开逻辑 - 将处理程序附加到表单提交,并在那里检查您的输入是否被选中。我可能会这样做:
$(function(){
$('form').submit(function(e){
e.preventDefault();
if ($('#checkbox').is(':checked')) {
alert('submit');
} else {
alert('do not submit');
}
});
});