我有一个按钮,当按下它时,它会调用带有一些参数的 ajax 函数,然后 ajax 会在数据库上发布一些值。用户在离开应用程序或刷新页面之前可能会多次使用此表单。到目前为止,这很好用!
在我上次更新中,我添加了一个复选框,该复选框将使用上述 ajax 函数保存我希望保存在数据库中的另一条信息。因此,当按下按钮时,我会检查复选框是否被选中,然后将 true 或 false 发送给 ajax 函数。到目前为止,这也很好用!
然而,不能很好地工作的是最后一个功能仅在第一次正常工作的事实!每隔一次用户点击按钮,无论复选框选中状态是什么,它都会提交第一次的状态。就像第一次按下按钮后 checkbox.checked 属性冻结一样。
这可能无关紧要,但我也尝试过使用切换按钮,但我遇到了同样的问题!
你知道如何克服这个问题吗?
非常感谢!
下面是代码: 表单:它有 1 个切换按钮和 3 个调用 sendTask 函数的按钮。
<button type='button' class='btn btn-info' data-toggle='button' style='margin-top: 5px; width: 216px; height: 40px;' name='yesterday".$category['id']."' id='yesterday".$category['id']."'>This one was yesterday!</button></div>
<button class='btn btn-".$buttoncolor."' id='btn-spec-small' type='button' onClick='sendTask(".$category['id'].", '1', yesterday".$category['id'].")'>0-15min</button>
<button class='btn btn-".$buttoncolor."' id='btn-spec-small' type='button' onClick='sendTask(".$category['id'].", '2', yesterday".$category['id'].")'>15-60min</button>
<button class='btn btn-".$buttoncolor."' id='btn-spec-small' type='button' onClick='sendTask(".$category['id'].", '3', yesterday".$category['id'].")'>60+min</button>
发送任务函数:
function sendTask(category, weight, checkbox){
var ieri = $(checkbox).hasClass('active');
TaskSubmit(category, weight, ieri);
};
任务提交函数:
function TaskSubmit (taskidsubmitted, weight, ieri) {
$.ajax({
url: 'submit_task.php?taskid=' + taskidsubmitted + '&weight=' + weight + '&ieri=' + ieri,
success: function (response) {
if (response !== "fail") {
document.getElementById('score-label').innerHTML = response;
} else {
document.location = "index.php";
}
}
});
}
问题是这一行:
var ieri = $(checkbox).hasClass('active');
仅在第一次按下按钮时更改。所有其他时间保持第一个状态(真或假)。