无法禁用onclick()

时间:2019-06-13 15:56:26

标签: jquery ajax select onclick

我正在尝试禁用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);

也是如此,但是它似乎仍然不起作用。

当我单击该字段时,将出现该复选框,但它已经被单击,并且不会更改该选项。

1 个答案:

答案 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)
}