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>

除第一个选项外,所有选项都是使用 jQuery(来自 localStorage)生成的,并按应有的方式显示。

我有一个在“更改”事件上触发的 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 回答