我刚刚遇到了一个奇怪的行为 jQuery,无法找出任何或多或少的轻微解决方案。说,我有文本区域和按钮。如果 textarea 为空,我想禁用按钮。为此,我有一个处理程序来完成这项工作。
这是代码:
// textarea control
var $textarea = $('#myTextarea');
var $button = $('#myButton');
$textarea.on('input propertychange', function() {
if($textarea.val().length > 0) {
$button.removeClass('disabled').removeAttr('disabled');
} else {
$button.addClass('disabled').attr('disabled', 'disabled');
}
});
$button.on('click', function() {
if ($button.attr("disabled") != null) {
console.log('Disabled!');
return false;
} else {
// do some stuff and eventually erase textarea
$textarea.val('');
}
});
我的麻烦是当我擦除 textarea (代码的结尾)时,它不会禁用按钮。任何想法都将不胜感激(实际上它是对我的代码的轻微改编,但情况反映得很好,希望你能清楚,谢谢!)
UPD 在 stackoverflow 上找不到任何东西没有帮助。
UPD2
正如我在开始时所说的那样,我不是在寻找像强制触发事件这样的解决方法,我认为可以捕获由$textarea.val();
Sure @Madbreaks 和 @epascarello 的解决方案触发的任何事件,谢谢大家。