0

そのため、動的に生成された SELECT があり、PHP-mySQL テーブルから入力されます。また、ユーザーがページ上で選択した値を変更する回数を処理する、select の on change イベントもあります。変更イベントが発生すると、その選択オプションの値を 3 つの入力ボックスに入力します。

SELECT を使用してページに入る (または更新する) と、SELECT が入力されますが、onChange イベントは発生しません。実際には onchange が起動されると確信していますが、それは SELECT が入力される前に発生するため、提供する値はありません。私に何ができる?PHP からSELECT が適切に入力された後、どのように変更イベントを呼び出すことができますか?

onChange の私のコードは次のとおりです。

$(document).ready(function(){
    $('#myselect').change(function(){
      var selected = $(this).find('option:selected');
      $('#pux').val(selected.data('foo'));
    }).change();
});

したがって、基本的には、名前と id = puxの入力に select オプションの data-foo 値を入力する必要があります。つまり、選択のオプションの構造は次のようになります。

<option id="1" value="whatever" data-foo="something_important">First option</option>

もちろん、宛先入力ボックスは次のとおりです。

<input type="text" name="pux" id="pux" value="0" />

私が言ったように:イベントは選択の手動変更ではうまく機能しますが、ページショー(document.ready)では、pux入力ボックスは何も設定されていません...空です...変更イベントを取得できるようにしたいです選択が移入された後に発火します。選択が移入された後、選択ボックスは最初のオプションを自動的に選択して表示します

  • $(document) を使用しようとしました。on("change" , function()... document.ready の外側ですが、変更はありません

  • PHPからSELECTを入力した直後に、入力の値を設定しようとしましたが、idが機能していないようです。コードを間違った場所に配置したか、もうどうすればよいかわかりません...

それを移入するためにphpを呼び出す私のコードは次のとおりです。

$('#myselect').toggle('fast', function(){
  $(this).html(ajaxloader);
  $(this).toggle('fast', function(){
    $.get(loadurl, function(data){
      $('#myselect').html(data);
      $('#myselect').selectmenu("refresh",true);
    },'html');
// and here I placed my assignment
    var selx  = $('#myselect').find('option:selected');
    $('#pux').val(selx.data('foo'));
  });
});

まだ何も...

どんな助けでも大歓迎です。ありがとうございました

4

1 に答える 1

1

あなたの質問から、選択リストを動的に設定しても change() イベントが呼び出されないようです。したがって、変更イベント ハンドラーを別のプロシージャに抽出することを検討することをお勧めします。

function populatePux() {
  var selected = $('#myselect option:selected');
  $('#pux').val(selected.data('foo'));
}

$(document).ready(function(){
    $('#myselect').change(populatePux);
});

populatePux()#myselect が設定された直後に、その特定のプロセスに使用する関数で実行できます。

于 2013-07-10T22:14:51.233 に答える