1. 程式人生 > >關於有時select下拉表單selected設定無效的解決方案

關於有時select下拉表單selected設定無效的解決方案

<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" 純屬個人親身經歷,如果能幫到你,歡迎給個贊,若有不妥之處請指出!