【发布时间】:2017-05-10 04:21:56
【问题描述】:
我的情况是这样的
我有一个这样的组件:
<template>
<div class="panel panel-default panel-filter">
...
<div id="collapse-location" class="collapse in">
<!-- province -->
<div style="margin-bottom: 10px">
<location-bs-select element-name="province_id" level="provinceList" type="1" module="searchByLocation"/>
</div>
<!-- city -->
<location-bs-select element-name="city_id" level="cityList" type="2" module="searchByLocation"/>
</div>
<!-- button search -->
<div class="panel-item">
<br>
<a href="javascript:;" class="btn btn-block btn-success" v-on:click="searchData">
Search
</a>
</div>
...
</div>
</template>
<script>
export default{
...
data() {
return{
...
province_id:'',
}
},
...
methods: {
...
searchData: function() {
console.log(this.province_id)
console.log(document.getElementsByName("province_id")[0].value)
console.log('testtt')
}
}
}
</script>
组件有子组件,即location-bs-select。用于显示省市的组件
这样的子组件:
<template>
<select class="form-control" v-model="selected" :name="elementName" @change="changeLocation">
<template v-for="option in options">
<template>
<option v-bind:value="option.id" >{{ option.name }}</option>
</template>
</template>
</select>
</template>
<script>
export default{
props: ['elementName', 'level','type','module'],
...
};
</script>
如果我检查元素,结果如下:
点击按钮搜索时,我想获取省市的值
我尝试这样的javascript:
console.log(document.getElementsByName("province_id")[0].value)
有效
但我想使用 vue 步骤。我尝试这样:
console.log(this.province_id)
没有用
我该如何解决?
【问题讨论】:
-
你在哪里打电话给
this.provinsi_id?你的selected在哪里定义?您没有在代码示例中添加数据属性。为什么您的选项包含在两个模板中?直接在选项上循环即可 -
@Frank Provost,对不起。我更新了我的问题
-
@Frank Provost,某个组件使用的 location-bs-select 组件。不仅由一个组件使用。所以我把它分开了
-
抱歉,您误会了。即使有一个错字 - 实际上相关的是您的代码中的 WHERE 是否调用
this.province_id?从一个方法?在创造?选择之后? -
@Frank Provost,来自选择的名称。看看我的图片
标签: vue.js vuejs2 vue-component vuex