vue.js - 无法将选中的单选值重置为默认值(Vue js)
问题描述
默认情况下,我使用本地取货选项,值为1。当用户更改为免费送货时,会出现一些情况:如果邮政编码有效,则将更改为免费送货,否则将显示警报消息和本地将再次检查取件。问题是,如果邮政编码不合适,我可以将默认交付值设置为 1。但收音机显示选中的选项为 2。
<label v-for="(del, index) in delivery" :key="index">
<input type="radio" name="del" :value="del.value" v-model="defaultDelivery" @change="changeDelivery(del.value)">{{ del.label }}
</label>
export default {
data () {
return {
delivery: [
{value: 1, label: 'Local pickup'},
{value: 2, label: 'Free Delivery'}
],
accepted_zips: [
12345,
12346
],
defaultDelivery: 1,
zip_code: 78745
}
},
changeDelivery: function(val) {
if(val == 2 && !this.accepted_zips.includes(this.zip_code))
{
this.defaultDelivery = 1 //it should set 1 as checked again! But it is not aplied
alert('Sorry but currently we don't cover your area.')
}
},
解决方案
请注意,“不要”中的撇号正在关闭您的字符串,并且您没有将方法放在一个methods
部分中。纠正这一点,你的代码对我来说很好。
new Vue({
el: '#app',
data() {
return {
delivery: [{
value: 1,
label: 'Local pickup'
},
{
value: 2,
label: 'Free Delivery'
}
],
accepted_zips: [
12345,
12346
],
defaultDelivery: 1,
zip_code: 78745
};
},
methods: {
changeDelivery(val) {
if (val == 2 && !this.accepted_zips.includes(+this.zip_code)) {
this.defaultDelivery = 1 //it should set 1 as checked again! But it is not aplied
alert('Sorry but currently we don\'t cover your area.')
}
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>ZIP code <input v-model="zip_code"></div>
<label v-for="(del, index) in delivery" :key="index">
<input type="radio" name="del" :value="del.value" v-model="defaultDelivery" @change="changeDelivery(del.value)">{{ del.label }}
</label>
</div>
推荐阅读
- python - 如何返回一个只包含可以形成有效整数或浮点数的字符的字符串?
- apostrophe-cms - 从客户端渲染一个 nunjucks 模板
- python - 随着时间的推移将观察结果扁平化为单行
- loops - 在 v-for 循环中调用方法
- 64-bit - 64 位虚拟地址空间大小
- python-3.x - 如何使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量来签署 Cloud Storage URL?
- javascript - 如何用javascript中的新数据重新加载页面?
- git - 什么是 git 命令来更改模式中的远程文件名?
- google-app-engine - Google App Engine 从 PNG 文件签名中删除回车,损坏图像
- python - 余弦相似度输出不同的scipy vs sklearn