DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML和Xhtml >> 改變HTML下拉框SELECT選項的多種方法
改變HTML下拉框SELECT選項的多種方法
編輯:HTML和Xhtml     
提交表單後返回的HTML頁面重新渲染,SELECT控件的value和selectedIndex屬性都無法使下拉框保留提交表單前的狀態。

復制代碼代碼如下:
<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>

一種臨時的解決方案是在vm文件末尾加上一段腳本為下拉框賦值

復制代碼代碼如下:
<script>
$('#idState').val('$!{state}');
</script>

另一種方案是設置默認選中項

復制代碼代碼如下:
<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>

這裡要注意的是:進行==比較時,Velocity是區分類型的,如果用字符串“1”、“2”、“3”比較會始終得到false。
velocity中比較的問題
對於velocity來說,比較尤其是涉及到不等比較(大於或者小於)都是比較難實現的。現在我想把頁面上的file size分類顯示(Bytes、MB、GB),於是就涉及到比較filesize大小的問題,請問一下目前有沒有比較好的辦法實現呢?
比如下面的代碼:

復制代碼代碼如下:
#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>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved