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