1

次のようなページに選択リストがあります。

<select name='elements'>
    <option value='water'>Water</option>
    <option value='fire'>Fire</option>
    <option value='air'>Air</option>
</select>

編集: ユーザーが選択すると、現在のページが更新されますが、ページの更新後にユーザーの選択をリストに表示するにはどうすればよいですか? 言い換えれば、リストをデフォルトで選択された値にロールバックさせたくありません。

助けてください

4

3 に答える 3

4

これはJavascriptのみのソリューションです。

 <select name='elements' id='elements' onChange='window.location="yoururl.html?value=" + this.value;'>
     <option value='water'>Water</option>
     <option value='fire'>Fire</option>
     <option value='air'>Air</option>
 </select>

次に、この関数を使用して、valueパラメーターが設定されているかどうかを確認して取得し、jQuery を使用して として設定できますselected

$("#elements option[value='" + result_of_gup + "']").attr("selected","selected") ;
于 2012-06-07T23:13:28.947 に答える
3
 <select name='elements' onChange='window.location="yoururl.php?value=" + this.value;'>
     <option value='water'>Water</option>
     <option value='fire'>Fire</option>
     <option value='air'>Air</option>
 </select>
于 2012-06-07T22:42:57.427 に答える
0

jQueryなしでそれを行う:

関数を作成しwindow.location.getParameter()ます ( Anatoly Mironovのhereを参照)。

<select name='elements' id='elements' onChange='window.location="yoururl.html?elements=" + this.selectedIndex;'>
   <option value='water'>Water</option>
   <option value='fire'>Fire</option>
   <option value='air'>Air</option>
</select>

<script type="text/javascript">
  els = document.getElementById('elements');
  selIndex = window.location.getParameter('elements') || 0;
  els[selIndex].selected = true;​
</script>

参照しやすいように、アナトリーの優れた.getParameter機能を以下に示します。

window.location.getParameter = function(key) {
    function parseParams() {
        var params = {},
            e,
            a = /\+/g,  // Regex for replacing addition symbol with a space
            r = /([^&=]+)=?([^&]*)/g,
            d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
            q = window.location.search.substring(1);

        while (e = r.exec(q))
            params[d(e[1])] = d(e[2]);

        return params;
    }

    if (!this.queryStringParams)
        this.queryStringParams = parseParams(); 

    return this.queryStringParams[key];
};
于 2012-06-08T02:50:32.973 に答える