愚蠢的问题:<select>下拉选项一直显示第一项的问题?
原因:onchange从这个名称就可以看出,只有在select的选项有改变(change)的时候才会触发这个事件的。一般情况下select的第一个选项是默认选项,当你选中第一个项时,由于值没有改变,所以是不会触发onchange事件的。
解决:可以通过selected 来改变值
jq:
window.onload = function() {
$("#month").change(function() {
var opt = $("#month option:selected").text();
window.location.href = "http://go.xxx.net/guanli/menu.php?act=redpacket_monitoring&month="+opt;
});
//$('#month')[0].selectedIndex = -1;
};
html:
<td rowspan="2">时间<br/>
<select id="month">
<?php
foreach ($months as $k => $v) {
$month = date('Y-m', strtotime($v));
$selectdate = date('Y-m', $time);
if ($month == $selectdate) {
$selected = "selected";
} else {
$selected = "";
}
?>
<option value="<?php echo $month; ?>" <?php echo $selected; ?>><?php echo $month; ?></option>
<?php } ?>
</select>
</td>
php:
if (!empty($_GET['month'])) {
$time = strtotime($_GET['month']);
} else {
$time = time();
}