0

「アクション」ボタンを含む div に jQuery BlockUI 呼び出しを設定しました。クリックすると、ダブルクリックなどを防ぐために、この灰色がページの外に出ます。新しいオプションが導入され、選択ボックスと移動ボタンのコンボが追加されました。

問題は、選択ボックスの変更により、送信ボタンを押す前に待機画面に移動することです。

選択時にブロックUIを起動しないようにするにはどうすればよいですか? 残念ながら、select name="" 領域は動的であり、cms から構築されると常に変化するため、select[name=] ターゲティングを使用できません。必要に応じてクラスを提供できます。「その他」は現在私が持っているすべてです。選択クリックの場合、基本的に何もしないように if 上部を構築する必要があります。

$('.actionbuttons').click(function() {
    if($SELECT?)
       alert('select');
    }
else{
       $.blockUI({ message: '<h1>thinking...</h1>' });
    }
}); 

html:

<div class="actionbuttons">
  <input type="submit" name="a" value="Save" onclick="return verify(this.form);">
  <input type="submit" name="b" value="Close" onclick="return verify(this.form);">
  <select name="c" size="1" onchange="changeit();">
      <option selected="selected">Default</option>
      <!-- dont do anything when clicking here -->
  </select>
  <input type="submit" name="d" value="Change C" onclick="return verify(this.form);">
</div>

いいえ、記録のためだけに、仕様上、1 回の移動での onchange + submit は受け入れられません。そのため、c を送信するには d にボタンが必要です。これらの名前のアルファベットは動的であり、ページが読み込まれるたびに変化するため、ターゲティングには役に立たないことに注意してください。

4

1 に答える 1

0

input要素がクリックされたときにのみ BlockUI オーバーレイをトリガーすることを意図している場合はtype="submit"、セレクターをより具体的にすることができます。

HTML

<div class="actionbuttons">
    <input type="submit" name="a" value="Save" />
    <input type="submit" name="b" value="Close" />
    <select name="c" size="1">
        <option selected="selected">Default</option>
        <option>Other</option>
        <!-- dont do anything when clicking here -->
    </select>
    <input type="submit" name="d" value="Change C" />
</div>

JS

$('.actionbuttons input[type="submit"]').click(function (e) {
    $.blockUI({
        message: '<h1>thinking...</h1>'
    });
    verify( /* Pass in your form */ );
});

$('.actionbuttons select').change(function (e) {
    changeit();
});

これにより、クラスを持つコンテナーの子 (必ずしも直接ではない) をinput持つ要素の動作がトリガーされます。そうすれば、オーバーレイを表示するコールバック関数内にロジックは必要ありません。さらに、通話をそこに直接移動するオプションもあります。type="submit"actionbuttonsverify

jsfiddle

于 2013-02-18T20:13:10.447 に答える