0

朝、

次のような選択ボックスがあります。

<select id="companyselect" name="companyselect">
<option value="-1">Please choose company</option>
<option value="CO1">CO1</option>
<option value="CO2">CO2</option>
<option value="CO3">CO3</option>
<option value="CO4">CO4</option>
</select>

最初のオプションを除くすべてのオプションは、(localStorage から) jQuery を使用して生成され、必要に応じて表示されます。

「変更」イベントでトリガーされるjquery関数があります。

$(document).on('change', '#companyselect', function(e){
    thecomp = $('#companyselect').val();
    alert(thecomp);
});

これはすべてうまくいきます。

ただし、ページをリロードすると、すべてのオプションが期待どおりに生成されますが、「変更」イベントは必要に応じて機能しません。どのオプションが選択され$('#companyselect').val();ていても、常に最初のオプションとして返されます。

DOM をチェックして、同じ ID を持つ別の要素があるかどうかを確認しましたが、ありません。オプションのテキストを返そうとしましたが、最初のオプションのテキストが返されます。

すべての提案は大歓迎です。

4

2 に答える 2

2

localstorage を使用して jquery を使用してページを更新した後でも、 localstorage を使用して選択した値を取得する方法を次に示します

$(document).on('change', '#companyselect', function(e){
var thecomp = $('#companyselect').val();
localStorage.thecomp=thecomp;
alert(thecomp);
});

    if(localStorage.getItem('thecomp')){
     alert(localStorage.thecomp);   
    $("#companyselect").val(localStorage.thecomp);
    }

JSFIDDLE デモ

于 2013-08-08T13:10:37.137 に答える
0

誰かがここに置いた後に削除した解決策は、置き換えることです

thecomp = $('#companyselect').val();

thecomp = $(this).val();

最初に回答を投稿した人に感謝します

于 2013-08-08T13:24:05.750 に答える