jquery 无法禁用onclick()

q8l4jmvw  于 2023-05-22  发布在  jQuery
关注(0)|答案(1)|浏览(199)

我试图禁用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);

但还是不管用
只要我点击字段,复选框就会出现,但它已经被点击,它不会改变选项。

5sxhfpxr

5sxhfpxr1#

您应该使函数返回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)
}

相关问题