<select name="select10">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
如何在表單開啟時,select10的selected為當前月份呢?
支持你前進的力量....
resultado.append("new Array(\"inpcBpartnerLocationId\", ");
if (tdv != null && tdv.length > 0) {
resultado.append("new Array(");
if (strLocation.isEmpty()) {
// If no location is provided, the first one is selected
resultado.append("new Array(\"" + tdv[0].getField("id") + "\", \"" + FormatUtilities.replaceJS(Replace.replace(tdv[0].getField("name"), "\"", "\\\""))
candice242提到:
單開啟時,select10的selected為當前月份呢
月份 :
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
==================================================================
When month equal to month (show)
(tdv[i].getField("id").equalsIgnoreCase(Integer.toString(month)) ? "true" : "false")
在你的 <select 上加一個 id 屬性,並在 </select> 之後加一個 <script> 改變它的 selectedIndex 即可。如下所示
<pre class="c" name="code"><select id="select10" name="select10">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<script>
document.getElementById('select10').selectedIndex = (new Date()).getMonth() + 1;
</script>
這邊用 javascript 取的月份,是 user 端的時間。下面3樓用 php 取的是 server 端時間。如果 server 端與 user 端的時區有可能不同,要注意功能上是要取哪個時間。
若是年份呢?可以用以下寫法嗎
<script>
document.getElementById('select10').selectedIndex = (new Date()).getYear();
</script>
select部份就不再詳細描述.
呵 ... 可不可以,你試下去不就立即知道了?儘管試啦!電腦不會爆炸啦~
我試了.但不行,覺的很奇怪,才再請教你的.
你把年份的 id 也寫 select10 跟月份一樣嗎?月份才只有 1 到 12 而已,選不到 2013 年很正常吧?
我的程式碼是:
<select id="select9" name="select9">
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
</select>
<script>
document.getElementById('select9').selectedIndex = (new Date()).getYear() ;
</script>
知道後面為什麼要減 2011 吧?
<pre class="c" name="code">document.getElementById('select9').selectedIndex = (new Date()).getYear() - 2011;
我不知道為什麼要減,但試過了.不行耶....
寫出來了
<select id= "select9" name="select9">
<option value="0">2011</option>
<option value="1">2012</option>
<option value="2">2013</option>
<option value="3">2014</option>
<option value="4">2015</option>
<option value="5">2016</option>
<option value="6">2017</option>
<option value="7">2018</option>
<option value="8">2019</option>
<option value="9">2020</option>
<option value="10">2021</option>
</select>
<script>
document.getElementById('select9').selectedIndex = (new Date()).getYear() - 2011;
</script>
一點 programmer 的 Fu 都沒有 ....
顯示當月俺用的方法
<pre class="c" name="code">
<select id="select10" name="select10">
<option value="<?php echo date("m");?>"><?php echo date("m");?></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
大鵰兇的寫法太長
縮短一下好了= =+
<pre class="c" name="code">
<select id="select10" name="select10">
<?php
$m = range(1,12);
$now_m = date("m");
foreach ($m as $key => $value)
{
echo '<option value="' . $value . '" ' . ($value == $now_m?'selected':null) . '>' . $value . '</option>'."\n";
}
?>
</select>
既然都用 php 了,這樣會不會比較省事一點?
<pre class="c" name="code"><select id="select10" name="select10">
<?php
$m = date('m'); // $m 從當前時間取得或是從前一次儲存的值取得
for($i=1; $i<=12; $i++)
echo '<option value="',$i,'"',($i==$m?' selected':''),'>',$i,'</option>';
?>
</select>
俺個人寫法關係
很少讓echo吐出HTML
(因為俺用框架開發的,採取MVC架構)
我只有用 template、DBAD這兩個而已XDD
框架這部分就沒用了
那來個smarty好了:
<pre class="c" name="code">
<?php
...
$m = date('m');
$opts = array();
for($i=1; $i<=12; $i++) {
$opt = array();
$opt['opt'] = $i;
if($m==$i) {
$opt['sel'] = true;
} else {
$opt['sel'] = false;
}
$opts[] = $opt;
}
$tpl = new Smarty;
$tpl->assign('opts',$opts);
...
template:
<pre class="c" name="code">
...
<select id='select10' name='select10'>
{foreach from=$opts item=$opt}
<option value='{$opt.opt}' {if $opt.sel}selected{/if}>{$opt.opt}</option>
{/foreach}
</select>
...
不知道PHP5.?版
直接使用會出現錯誤,要改成這樣
<?php
date_default_timezone_set('Asia/Taipei');
echo date("Y-m-d A h:i");
?>
<?php
date_default_timezone_set('Asia/Taipei');
echo date("m");//改成這樣
?>
小弟獻醜了~用jQuery的方式:
<pre class="c" name="code">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
gentMonth(); //建立月份選單
selMonth(); //依目前月份選取
});
function gentMonth(){
for(var i=0,tmp='';i<=12;i++) tmp+=(i>0)?'<option value="'+i+'">'+i+'</option>':'<option value=""></option>';
$('select[name="monthDL"]').html(tmp);
}
function selMonth(){
$('select[name="monthDL"]').val(new Date().getMonth()+ 1);
}
</script>
<select name="monthDL"></select>