select标签下拉选项一直显示第一项的问题? onchange()事件

当使用<select>标签并依赖onchange事件时,如果默认选中第一项,由于值未变化,不会触发事件。解决方法是在JavaScript中设置默认选中值,或者在HTML中通过selected属性设定默认选中项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

愚蠢的问题:<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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值