私はちょうど奇妙な振る舞いjQueryに遭遇し、多かれ少なかれわずかな解決策を理解することができません。たとえば、textareaとbuttonがあります。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(コードの終わり)を消去してもボタンが無効にならないことです。任意のアイデアをいただければ幸いです(実際には、私のコードを少し変更したものですが、状況はかなりよく反映されています。それがあなたにとって明確になることを願っています、ありがとう!)
UPDstackoverflow で何も見つかりませんでした。
UPD2
最初に言ったように、フォーストリガーイベントのような回避策を探していませんでした$textarea.val();
。Sure@ Madbreaksによって発生したイベントをキャッチできると思いました。@epascarelloのソリューションはかなりうまく機能します、ありがとう。