1

タイプの入力に関連付けられたchangeイベント処理があることを知っています。しかし、ユーザーがselect要素で別の値を選択したかどうかを知りたいです!したがって、ユーザーがselectで新しい要素を選択したときにコードを実行したくないのですが、ユーザーが別の値を選択したかどうかを知りたいのです。実際、私のフォームには2つのselect要素があり、2つのselect要素が変更された場合にのみajaxを起動したいと思います。では、2つの要素が変更されたことを知る方法は?jQueryselect

4

5 に答える 5

2

Javascriptファイルにバインディングを設定することで、選択した要素の変更イベントを具体的にリッスンできます。

しかし、それはあなたの問題の半分しか解決しません。別の要素がいつ選択されたかを知りたい。

これを行うには、イベントが発生するたびに更新される追跡変数を作成します。

まず、トラッキング変数にドロップダウンに表示されない値を指定します。

// Hugely contrived!  Don't ship to production!
var trackSelect = "I am extremely unlikely to be present";

次に、変更イベントを処理する関数を設定する必要があります。

次のような単純なもの:-

var checkChange = function() {
  // If current value different from last tracked value
  if ( trackSelect != $('#yourDD').val() )
  {
     // Do work associated with an actual change!
  }

  // Record current value in tracking variable
  trackSelect = $('#yourDD').val();
}

最後に、イベントをdocument.readyに接続する必要があります。

$(document).ready(function () {
  $('#yourDD').bind('change', function (e) { checkChange() });
});
于 2012-11-07T11:07:56.987 に答える
2

まず、selectイベントハンドラーを使用できます(一部のフラグの値を設定するため)。仕組みは次のとおりです。

$('#select').change(function () {
  alert($(this).val());
});​

デモ: http: //jsfiddle.net/dXmsD/

または、元の値をどこかに保存してから確認することもできます。

$(document).ready(function () {
  var val = $('#select').val();    
  ...
  // in some event handler
  if ($('#select').val() != val) ...
  ...
});
于 2012-11-07T11:00:00.823 に答える
1

ページの読み込み時の値を非表示のフィールドに保存できます。

お気に入り

    $(document).ready(function(){
 $('hiddenFieldId').val($('selectBoxId').val());
then on change you can grab the value of select:
});
    $('selectBoxId').change(function(){
    var valChng = $(this).val();
    // now match the value with hidden field
    if(valChng == $('hiddenFieldId').val()){ 
    }
    });
于 2012-11-07T11:03:02.453 に答える
1

最初に、選択したオプションの以前の値を保存する必要があります。次に、新しく選択した値が保存された値と異なるかどうかを確認する必要があります。

サンプルをチェックしてください!

$(document).ready(function() {
    var lastValue, selectedValue;
    $('#select').change(function() {
        selectedValue = $(this).find(':selected').val();
        if(selectedValue == lastValue) {
            alert('the value is the same');
        }            
        else {
            alert('the value has changed');
            lastValue = selectedValue;
        }
    }); 
});​
于 2012-11-07T11:17:55.947 に答える
0
 $("select").change(function () {
      var str = "";
      $("select option:selected").each(function () {
            str += $(this).text() + " ";
          });
      $("div").text(str);
    })
    .change();

http://docs.jquery.com/Events/change

于 2012-11-07T11:04:38.770 に答える