Vue中如何在change事件中获取当前选择值(无需数据绑定)
解决方法
直接在@change事件中使用$event.target.value获取当前选中的option值,替换掉代码中的???即可,修改后的模板代码如下:
<select v-if="user.client_groups.length > 0" class="small" @change="clientGroupChanged(user.id, $event.target.value)"> <option v-for="group in groups" :key="group.id" :value="group.id" :selected="user.client_groups[0].id === group.id">{{ group.title }}</option> </select>
另外需要修正你原代码里的:selected绑定问题:原写法会让所有option都被标记为选中状态,正确的做法是判断当前group.id是否等于user.client_groups[0].id,返回布尔值来控制选中状态,上面的代码已经包含这个调整。
你的clientGroupChanged方法无需修改,保持原样即可:
clientGroupChanged: function(uid, value){ alert(value); },
原理说明:在Vue的事件处理逻辑中,$event代表原生DOM事件对象,通过$event.target能获取触发事件的select元素,它的value属性对应你在option上绑定的:value="group.id",这样就能直接拿到选中的分组ID作为第二个参数传入方法。
内容的提问来源于stack exchange,提问作者Peyman Khn
相关产品推荐
相关产品推荐

