8

All,

I can reset all my form elements using the following JQuery Syntax:

('#myform')[0].reset();

How can I modify this to exclude the reset of "select box" values?

Thanks

4

4 に答える 4

10

みんなに..

リセット関数は、すべてを '' (空の文字列) に設定するわけではありません

初期値にリセットされます..(値属性に保存されるか、選択されたオプションなど..)

デフォルトのリセット機能を維持したい場合は、

  1. すべての<select>要素を取得する
  2. 現在選択されている値を取得する
  3. 現在のようにフォームをリセットします
  4. 選択をリセット

例:

<script type="text/javascript">
  $(document).ready(
  function(){
   $("#resetbutton").click(
    function(){
     var values = [];
     var selected = $("select").each(
      function(){
       values.push( $(this).val());
       });
     this.form.reset();
     for (i=0;i<selected.length;i++)
      $(selected[i]).val(values[i]);
    });
    }
  );
 </script>
于 2010-01-05T18:37:58.803 に答える
0

なんらかの理由で、Davidの正解エラーは私のG​​oogleChromejsでした。それは言っています:

Uncaught TypeError:オブジェクト#のプロパティ'reset'は関数ではありません

...だから私は少し異なる解決策を試すことにしました:

  • ネイティブブラウザのリセットボタンの属性を「非表示」にし、「id」を設定します。

<input id="resetbutton" type="reset" style="visibility:hidden;" name="reset" value="reset" />

  • リンクをクリックしてからリセットボタンでJQueryの「クリック」イベントを開始します。

<a href="#" onclick="$('#resetbutton').click();">Reset</a>

于 2012-06-26T13:52:49.380 に答える