0

このドロップダウンメニューがあります:

<select name="Filter" onchange="applyFilter(this);">
<option name="Item1" id=Item1 value="10.5">Test1</option>
<option name="Item2" id=Item2 value="27">Test2</option>
<option name="Item3" id=Item3 value="31">Test3</option>
</select>

私はまだjavascriptを学んでおり、クエリ文字列URLを生成/ロードし、選択したアイテムの値をパラメーターとして渡す関数を作成しようとしています。ドロップダウン メニューの各オプションには、独自の ID が必要です。これは私がこれまでに持っているコードです:

<script language="javascript1.2" type="text/javascript">
function applyFilter()
{ 
var currentQS = '';
var currentObject;
var currentURL = '' + window.location.href;

currentQS = unescape(window.location.search);
var newQS = '';

currentObject = document.getElementById('Item1');
newQS = $Querystring(newQS).set(currentObject.name,currentObject.value).toString();
newQS = newQS.substring(1,newQS.length);

currentObject = document.getElementById('Item2');
newQS = $Querystring(newQS).set(currentObject.name,currentObject.value).toString();
newQS = newQS.substring(1,newQS.length);

currentObject = document.getElementById('Item3');
newQS = $Querystring(newQS).set(currentObject.name,currentObject.value).toString();
newQS = newQS.substring(1,newQS.length);

var newURL = 'http://' + location.hostname + location.pathname + '?' + newQS;
window.location = newURL;
}
</script>

この意志についての助けをいただければ幸いです。

4

1 に答える 1

0

$Querystringを指しているのかわかりませんが、次のようにできるはずです。

document.getElementsByName('Filter')[0].addEventListener('change', function() {
    window.location = 'http://' + location.hostname + location.pathname + '?' + this.name + '=' + this.options[this.selectedIndex].value;
});

ただし、選択メニューは、実行しようとしていることに最適なオプションではない場合があります。このブログ投稿をご覧ください: http://uxmovement.com/forms/stop-misusing-select-menus/

于 2013-02-10T20:17:23.663 に答える