您的位置:首页 > 其它

关于有时select下拉表单selected设置无效的解决方案

2016-10-26 10:48 381 查看
<select class="form-control" name="user_level" <strong><span style="color:#ff0000;">autocomplete="off"</span></strong>>
<option value="">--请选择--</option>
<if condition="$user_info['user_level'] eq '0'">
<option value="0" selected="selected">普通</option>
<else />
<option value="0">普通</option>
</if>
<if condition="$user_info['user_level'] eq '1'">
<option value="1" selected="selected">会员</option>
<else />
<option value="1">会员</option>
</if>
<if condition="$user_info['user_level'] eq '2'">
<option value="2" selected="selected">贵宾</option>
<else />
<option value="2">贵宾</option>
</if>
</select>


以上只是本人的一个案例(thinkphp模板引擎)

如果你懒的看上面的不要紧,下面我直接说吧

正常情况下我们都是这么写的

<select name="自定义名称">
<option value="1">1</option>
<option value="2" selected="selected"> 2</option>
<option value="3">3</option>
</select>


按着上面的写法一般来说没什么问题,可是有时候可能是使用了前段框架的问题,导致红色项没有按我们预期的被选中,如果遇到这种情况我们可以进行如下标准写法就可以解决问题了

<select name="自定义名称" autocomplete="off"</span>>
<option value="1">1</option>
<option value="2" selected="selected"> 2</option>
<option value="3">3</option>
</select>

加了autocomplete="off"后就任何问题都解决了

这个问题估计你在其它地方也会看到类似的解决方案,但是并没有给出为什么?

原因:是因为“例如火狐”为了提高浏览器性能,使用了缓存技术,就比如你的输入框双击后会出现之前的输入的内容一个道理,解决方法就是加autocomplete="off"或者手动清除浏览器缓存,两种方法肯定推荐用前者

火狐官方论坛解释:http://stackoverflow.com/questions/6849057/firefox-5-not-using-select-selected-value-on-page-refresh-retaining-old-value

火狐5版本就有这个问题,4没发现,不排除其它浏览器也作了类似的处理,所以为了保险起见,最好都加上autocomplete="off"

纯属个人亲身经历,如果能帮到你,欢迎给个赞,若有不妥之处请指出!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐