5

JQueryを使用してWebフォームを作成しています。

リンクを使用して、前の選択フィールドを別の選択フィールドにコピーしたい。DOMを変更すると、select1.selectedIndexの値が変更されます。ただし、古い値は引き続き視覚的に表示されます。どうやらそれを更新して視覚的に更新する必要があるようです。読み続けているrefreshメソッドの構文がわかりません。これは私がそれをやろうとした方法であり、それは機能しません。

これはリンクのhtmlです

    <select name="entry.14.single" id="entry_14">      
      <option value="1"></option>      
      <option value="2">2</option>       
      <option value="3">3</option>       
      <option value="4">4</option>       
      <option value="5">5</option></select> 
    <select name="entry.16.single" id="entry_16">      
      <option value=1""></option>      
      <option value="2">2</option>      
      <option value="3">3</option>       
      <option value="4">4</option>       
      <option value="5">5</option></select> 
    <a href="#" onclick="setSelect('entry_16', 'entry_14');return false;">Same as above</a>

これが私のJavaScriptです:

    function setSelect(id1, id2){
      var select1 = document.getElementById(id1); 
      var select2 = document.getElementById(id2); 
      select1.selectedIndex = select2.selectedIndex;
      $('#select1').selectmenu('refresh');
    } 

誰かが私の更新ステートメントが機能しない理由を教えてもらえますか?

ps同じ問題について他のスレッドがあることを知っています。「ドキュメント」も読んだことがあります。他の場所にリンクしないでください。私は他の情報源を読んだことがありますが、どこにも行きません。更新を正しく機能させるために何を変更するかを教えてください。

編集:ここにあなたがhttp://jsfiddle.net/AFzqt/7/でいじることができるjsfiddleがあります

4

1 に答える 1

13

jQueryイベントハンドラーを利用してください!

探している関数は次のとおりです。

selectmenu("refresh")

あなたの例では、次のようになります。

$(function() {
    $("#changeButton").on("click", function(e) {
        $("#entry_16").val($("#entry_14").val());
        $("#entry_16").selectmenu("refresh");
        e.preventDefault();
    });
});

http://jsfiddle.net/AFzqt/8/

于 2012-04-14T02:56:30.403 に答える