5710 次
4 に答える
4
これは初期値の後に属性を変更しているため、技術的にはプロパティであり、$(this).prop()
代わりに を使用する必要があります$(this).attr()
。
また、true
代わりに値を設定してみてくださいselected
$(this).prop('selected',true);
または、select
要素の値を設定することもできます。
$('.type_c').val(pageType);
于 2012-05-18T17:40:19.397 に答える
0
あなたが返しているものが正しく評価されていることを確認します。次のコードで空白の HTML ページを作成しました。「pageType」に設定されている文字列に応じて、選択したオプションが異なる方法でレンダリングされることがわかります。
<html>
<head>
<script type="text/javascript" src="json2.min.js"> </script>
<script type="text/javascript" src="jquery-1.7.2.min.js"> </script>
<script type="text/javascript" src="jquery.cookie.js"> </script>
</head>
<script>
$(function(){
var pageType = 'Residential'; // returns either 'Business' or 'Residential'
$('.type_c option').each(function(){
$(this).removeAttr('selected');
});
$('.type_c option').each(function(){
if($(this).html() == pageType)
$(this).attr('selected','selected')
});
});
</script>
<body>
<select class="type_c" name="type_c"> // default selected is business
<option value="Business" selected="selected">Business</option>
<option value="Residential">Residential</option>
</select>
</body>
</html>
于 2012-05-18T17:50:18.570 に答える
0
私は以前にこのようなことが起こったことがあります。Firefox はフォーム要素の状態を保存するのが好きなので、ページがリロードされると、たとえそれが JavaScript によって変更されたとしても、最後のセッションからの選択が表示されます。通常、ページを最初から読み込む必要があります (リロードするのではなく、URL に移動して Enter キーを押します)。
参考になるかわかりませんが、過去に私も経験しました。
(これは完全に異なるため、2番目の回答を作成しました。)
于 2012-05-18T20:19:11.760 に答える