为什么默认选择下拉列表不会更改?

时间:2011-12-19 06:25:09

标签: javascript

<form method="get" action="http://example.com/" name="currencies">
<div>
Currencies:

<select  onchange="this.form.submit();" class="select" name="currency">
  <option value="USD" selected="selected">US Dollar</option>
  <option value="EUR">Euro</option>
  <option value="GBP">GB Pound</option>
  <option value="CAD">Canadian Dollar</option>
  <option value="AUD">Australian Dollar</option>
</select>
<input type="hidden" value="index" name="main_page"/>                           
</div>
</form>

当我选择GB Pound时,所有功能都没问题,但默认选择仍为US Dollar。当我删除selected="selected"中的<option value="USD"..时。当我改为Australian Dollar时。选择下拉列表中显示的项目仍为美元。为什么呢?

2 个答案:

答案 0 :(得分:1)

首次加载页面时会应用“默认”选项,并且该选项将是具有“已选择”属性的选项,或者当没有被指定为“已选择”时的第一个选项。

“查看源”工具显示浏览器最初从网络服务器收到的内容,用户(或JavaScript)更改后页面上所有内容的当前状态。

如果您使用JavaScript获取字段值(例如,响应某些用户操作),则会报告当前值。

提交表单时,表单字段的当前值将发送到Web服务器,并可由服务器端代码访问。

如果提交表单的结果是重新显示同一页面并且您希望仍然选择以前选择的选项,则应使用服务器端代码将“selected”属性应用于相应的选项。您使用的服务器端技术是什么? PHP? (或JSP,.NET,......?)

答案 1 :(得分:0)

当您选择“Australian Dollar”时,操作网址将为“currency = AUD”,但HTML代码本身不会更改。所选=“已选中”仍然与美元保持一致。

如果您喜欢DOM,可以使用一些简单的jQuery来移动所选属性,但是如果您刷新页面,您仍然会使用与之相同的原始HTML。