javascript - vue.js select下拉框事件绑定不上
天蓬老师
天蓬老师 2017-04-11 11:49:16
[JavaScript讨论组]

上面是模板

reportPrice(id){
    alert();
    let self = this;
    var url = Lib.api.project_reports_price;
    var params = {
        'access_token': USER.access_token,
        'reportId': id
    }
    var callback = (response)=>{
        if(response.code==200){
            self.price = response.price;
        }
    }
    Lib.run.ajax(url,'post',params,callback);
}

这个是绑定的事件,alert都不出来,请问是什么原因

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
PHP中文网

option是不能绑定事件的,若要绑定事件,在select上绑定change事件,每次option点击都会触发change事件,而selectvalue就是选中的optionvalue,可以用event.target取到这个值,用v-model也可以,但是v-model会忽略option的初始值

<select name="" id="" v-model="reportId" @change="reportPrice($event)">
    <option value="" v-if="reportData.length==0">&nbsp;没有更多了</option>
    <option :value="item.id" v-for="item in reportData"  v-html="'报表'+(parseInt($index)+1)"></option>
</select>
天蓬老师

@click="reportPrice(item.id)" 这代码有问题吧,你绑定上下文试试

PHPz

试试<option/>上绑DOM事件能否触发不就知道了

<option onclick="alert(1)">1</option>

答案是不能

怪我咯

<option @change="alert(1)">1</option>
try again ?

巴扎黑

下拉框的option是不能绑定事件的吧,你要在select绑定事件啊,而且你那$index是没定义的吧,还有你那option上多余的value你可以删掉了。把事件绑定在select上,把reportId传进去:

    <select name="" id="" @change="reportPrice(reportId)" v-model="reportId">
                    <option v-if="reportData.length==0">&nbsp;没有更多了</option>
                    <option v-for="(item,index) in reportData" v-bind:value="item.id" v-html="'报表'+(parseInt(index)+1)"></option>
                </select>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号