jQuery点击事件禁用输入字段

jQuery click event on disabled input field

本文关键字:输入 字段 事件 jQuery      更新时间:2023-09-26

我想在禁用的input上触发一个事件。我已经尝试了下面的代码,没有发生任何事情-没有错误,甚至没有触发。

$(document).on('click', '.select-row', function(e){
    ...
});

如何解决这个问题?

你不能触发任何鼠标事件,比如点击一个禁用的HTML元素。另一种方法是将元素包装成span或div,并对其执行click事件。

$("div").click(function (evt) {
  // do something
});​

另一种选择是使元素readonly而不是disabled,但要记住,jQuery没有默认的:readonly选择器

如果适合您,您可以使用readonly而不是disabled。然后,您可以轻松地使用click事件。

我们今天遇到了这样的问题,但我们不想更改HTML。所以我们使用mouseenter事件来实现

var doThingsOnClick = function() {
    // your click function here
};
$(document).on({
    'mouseenter': function () {
        $(this).removeAttr('disabled').bind('click', doThingsOnClick);
    },
    'mouseleave': function () {
        $(this).unbind('click', doThingsOnClick).attr('disabled', 'disabled');
    },
}, '.select-row');

这是我的解决方案

<div class="myInput"><input type="text" value="" class="class_input" disabled=""></div>
Jquery:

$("body").on("click", ".myInput", function(e) {
  if($(e.target).closest('.class_input').length > 0){
     console.log('Input clicked!')
  }
});

如果需要触发,请使用trigger()函数

$('.select-row').trigger('click');