在单击复选框时,使用jquery中的即兴提交表单。如果用户提交表单,一切正常。但是,如果用户取消表单,则单击该复选框。我想将一个操作绑定到取消事件以关闭提示并取消选中具有特定ID的所有复选框。如何关闭表单并取消选中用户取消时的所有复选框。这是我到目前为止所做的 - 特别感兴趣的是实际处理表单的最后一行,但我将整个函数包括在内以防它有用:
function markComplete(activity_id,index)
{
var addform =
'<h3>Form title</h3>\n\
<form\n\
<!--Form stuff goes here --> \n\
</form>';
function validate(v,m,f) //prevents submission on empty notes field
{
var flag = true;
if(v == 1)
{
if ($("#notes").val()==''){
$("#notes").addClass("form-error-input");
flag = false;
}
else $("#notes").removeClass("form-error-input");
}
return flag;
}
function callback_add(v,m,f){
if(v == 1)
{
var dataString = 'completion_date='+ f.completion_date + "¬es=" + f.notes;
$.post("<?php echo $_SERVER['REQUEST_URI']; ?>?mark_complete",dataString);
$("tr").eq(index).hide("fast");
$.prompt.close();
}
else
{
$("#complete_check").removeAttr('checked');
$.prompt.close();
}
}
$.prompt(addform,{ submit: validate, callback: callback_add, buttons: { Cancel: function (){$("#complete_check").removeAttr('checked');}, Add: 1 },focus: 1 });
单击复选框时会调用此函数,如下所示:
<input name="mark_complete" id="complete_check" type="checkbox" onchange="markComplete(<?php echo $record['activity_id']; ?>,$(this).index())" />
答案 0 :(得分:0)
我必须修改验证码才能使其正常工作:
自:
function callback_add(v,m,f){
if(v == 1)
{
var dataString = 'completion_date='+ f.completion_date + "¬es=" + f.notes;
$.post("<?php echo $_SERVER['REQUEST_URI']; ?>?mark_complete",dataString);
$("tr").eq(index).hide("fast");
$.prompt.close();
}
else
{
$("#complete_check").removeAttr('checked');
$.prompt.close();
}
要:
function callback_add(v,m,f){
if(v == 1)
{
var dataString = 'completion_date='+ f.completion_date + "¬es=" + f.notes;
$.post("<?php echo $_SERVER['REQUEST_URI']; ?>?mark_complete",dataString);
$("tr").eq(index).hide("fast");
$.prompt.close();
$("#new_row").addClass("form-success");
}
else
{
$('input[type=checkbox]:not("#todo_check")').each(function() //all checkboxes except the "To Do", which should remain checked
{
this.checked = false;
});
}
像冠军一样工作!