改變HTML下拉框SELECT選項的多種方法

字號:


    提交表單后返回的HTML頁面重新渲染,SELECT控件的value和selectedIndex屬性都無法使下拉框保留提交表單前的狀態(tài),接下來將和大家分享改變HTML下拉框選項的方法,感興趣的朋友可以研究下
    提交表單后返回的HTML頁面重新渲染,SELECT控件的value和selectedIndex屬性都無法使下拉框保留提交表單前的狀態(tài)。
    代碼如下:
    <SELECT id="idState" name="state" selectedIndex="$!{state}">
    <OPTION value="">全部</OPTION>
    <OPTION value="1">通過</OPTION>
    <OPTION value="2">末通過</OPTION>
    <OPTION value="3">待處理</OPTION>
    </SELECT>
    一種臨時的解決方案是在vm文件末尾加上一段腳本為下拉框賦值:
    代碼如下:
    <script>
    $('#idState').val('$!{state}');
    </script>
    另一種方案是設(shè)置默認(rèn)選中項:
    代碼如下:
    <SELECT id="idState" name="state" value="$!{state}">
    <OPTION value="">全部</OPTION>
    <OPTION value="1">通過</OPTION>
    <OPTION value="2" SELECTED>末通過</OPTION>
    <OPTION value="3">待處理</OPTION>
    </SELECT>
    用VTL的寫法就是:
    代碼如下:
    <SELECT id="idState" name="state" value="$!{state}">
    <OPTION value="">全部</OPTION>
    <OPTION #if($!{state} == 1) SELECTED #end value="1">通過</OPTION>
    <OPTION #if($!{state} == 2) SELECTED #end value="2">末通過</OPTION>
    <OPTION #if($!{state} == 3) SELECTED #end value="3">待處理</OPTION>
    </SELECT>
    這里要注意的是:進(jìn)行==比較時,Velocity是區(qū)分類型的,如果用字符串“1”、“2”、“3”比較會始終得到false。
    velocity中比較的問題
    對于velocity來說,比較尤其是涉及到不等比較(大于或者小于)都是比較難實現(xiàn)的。現(xiàn)在我想把頁面上的file size分類顯示(Bytes、MB、GB),于是就涉及到比較filesize大小的問題,請問一下目前有沒有比較好的辦法實現(xiàn)呢?
    比如下面的代碼:
    代碼如下:
    #if ($filesize > 1024 && $filesize < 1048567)
    #set($ksize = $filesize%1024)
    <div>File Size: $ksize KB
    #elseif ($filesize > 1048567 && $filesize < 1073731824)
    #set($msize=$filesize%1048567)
    <div>File Size: $msize MB
    #elseif ($filesize > 1073731824)
    #($gsize=$filesize%1073731824)
    <div>File Size: $gsize GB
    #else
    <div>File Size: $filesize Bytes
    #end
    代碼如下:
    <PRE class=html name="code"><SPAN><SPAN>
    </SPAN></SPAN></PRE>
    <PRE></PRE>
    <PRE></PRE>
    <PRE></PRE>