【问题标题】:How to modify the default value of a select dropdown without using inline javascript?如何在不使用内联 javascript 的情况下修改选择下拉列表的默认值?
【发布时间】:2013-10-04 15:44:13
【问题描述】:

在 Chrome 扩展程序中,Google 不允许我们将内联 javascript 添加到 popup.html。因此,唯一的选择是链接到外部脚本。

我有以下几点:

script.js:

if (localStorage.getItem("mySelectValue") === null) { 
    document.write("choose a value"); 
}
else {
    document.write(localStorage.getItem('mySelectValue'));
}

popup.js:

$(document).ready(function(){
    $('#mySelectValue').change(function(){
         localStorage.setItem('mySelectValue', $(this).val());
         $('#mySelectValue').value(localStorage.getItem('mySelectValue'));
    });
});

popup.html:

<script type="text/javascript" src="popup.js"></script>

<select id="mySelectValue">
   <option name="" value=""><script type="text/javascript" src="script.js"></script></option>
       <option value="first" name="first">first</option>
       <option value="second" name="second">second</option>
       <option value="third" name="third">third</option>
</select>

此代码成功显示文本,但我无法以这种方式将脚本添加到值中。那么如何使用相同的方法将本地存储中的给定值也定义为值呢?

【问题讨论】:

  • jQuery 没有 .value() 方法。但是,它有.val()
  • 在popup.js中,你应该搜索一个
  • @Johan,无论如何,脚本对我来说都很好,这不是问题。问题是我对选择表单的第一个选项中的文本执行相同的操作,并为 value 字段执行此操作。

标签: javascript jquery select google-chrome-extension local-storage


【解决方案1】:

在 jQuery 中,您可以执行以下操作:

$("#mySelectValue option[value='"+localStorage.getItem('mySelectValue')+"']").attr("selected","selected");

这基本上会找到与您从localStorage.getItem('mySelectValue') 获得的值相同的option,并使其默认选中。

【讨论】:

  • 它没有用,但事实证明我不需要这样做! :D
  • 我会接受,因为这是唯一的答案,即使它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多