1. ホーム
  2. jquery

[解決済み】jQueryダイアログのボタンを関数から無効化するには?

2022-04-04 09:35:42

質問

ユーザーに特定の情報を入力させるjQueryダイアログがあります。このフォームには、"continue"ボタンがあります。このボタンは、すべてのフィールドに内容が入力されたときにのみ有効になるようにしたいのですが、そうでない場合は無効のままです。

フィールドのステータスが変化するたびに呼び出される関数を書きました。しかし、この関数からダイアログボタンを有効にしたり無効にしたりする方法がわかりません。どうしたらいいでしょうか?

おっと、それと書き忘れましたが、これらのボタンは以下のように作成されています。

$(function() {
  $("#dialog").dialog({
    bgiframe: true,
    height: 'auto',
    width: 700,
    show: 'clip',
    hide: 'clip',
    modal: true,
    buttons: {
      'Add to request list': function() {
        $(this).dialog('close');
        $('form').submit();
      },
      'Cancel': function() {
        $(this).dialog('close');
      }
    }
  })
});

解決方法は?

を設定したいと思います。 disabled プロパティ

 $('#continueButton').attr("disabled", true);

更新情報 : あはは、複雑さがわかりました。 その jQueryダイアログ には、役に立つ一行がありました("buttons"の項を参照)。

 var buttons = $('.selector').dialog('option', 'buttons');

ダイアログからボタンのコレクションを取得し、それをループして必要なものを見つけ、上で示したようにdisabled属性を設定する必要があります。