我正在尝试禁用onclick事件,但似乎不起作用。主页弹出一个模态,然后使用onclick()允许最终用户编辑页面上的一部分内容。
完成后,我想使用OnBlur()运行另一个更新数据库的脚本。此功能适用于普通文本框,但是我需要禁用onclick事件,因为我现在正在显示具有此功能的选择框:
function EditField(editableObj,column,app_id) {
$(editableObj).css("background","#B8B8FA");
$(this).attr('disabled', true);
var data = `<input type="checkbox" name="YesNo" id="YesNo" checked data-toggle="toggle" data-off="No" data-on="Yes" data-onstyle="success" data-offstyle="danger">`;
$(editableObj).html(data);
}
这是一个PHP脚本:
echo "<td contenteditable=\"true\" onBlur=\"saveToDatabase(this,'credit_checks','".$results[$k]["app_id"]."')\" onClick=\"EditField(this,'credit_checks','".$results[$k]["app_id"]."'); \">".(($results[$k]["credit_checks"] == "Yes") ? "<img src=\"images/checkmark.png\" width=\"20\" height=\"20\" />" : "")."</td>";
我尝试了该选项
$(editableObj).prop('disabled', true);
也是如此,但是它似乎仍然不起作用。
当我单击该字段时,将出现该复选框,但它已经被单击,并且不会更改该选项。
答案 0 :(得分:1)
您应该使函数返回false
以禁用该事件
function EditField(editableObj,column,app_id) {
if ($(this).attr('disabled')) {
return false;
}
$(editableObj).css("background","#B8B8FA");
$(this).attr('disabled', true);
var data = `<input type="checkbox" name="YesNo" id="YesNo" checked data-toggle="toggle" data-off="No" data-on="Yes" data-onstyle="success" data-offstyle="danger">`;
$(editableObj).html(data)
}