排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术
分类:
Js相关

HTML代码
<div id="pro_citys">
省:<select id="provice" v-on:change="prochange()">
<option v-for="pitem in parray" v-bind:value="pitem.Id">{{ pitem.Name }}
</option>
</select>
市:
<select id="city">
<option v-for="pitem in citys" v-bind:value="pitem.Id">{{ pitem.Name }}
</option>
</select>
</div>JS代码
(function () {
$.get("ProviceHandler.ashx", function (result) {
//需要把json字符串转换成json数组对象
var jsonarray = JSON.parse(result);
//vue实例
var pvue = new Vue({
el: "#pro_citys",
data: {
parray: jsonarray, //省存放的数据
citys: [] //城市存放的数据
},
methods: {
prochange: function () {
//查询数据,然后给该省下面的城市赋值
this.$data.citys = getCityByPid($("#provice").val());
}
}
});
});
});
//通过省id查询城市id
var getCityByPid = function (_pid) {
var jsonarray;
$.ajax({
async: false,
url: "CityHandler.ashx",
type: "get",
data: { proviceId: _pid },
success: function (result) {
//需要把json字符串转换成json数组对象
jsonarray = JSON.parse(result);
}
});
return jsonarray;
} 一个vue实例里边,可以赋值多个数据,为省市都提供数据
如果一个vue实例里边有多个数据,要注意Vue的作用范围,绑定的id对应的元素要包含需要使用数据的范围里才能作用到
当然vue的实例其实最好不要写到ajax回掉方法里边去,以前写的了好像传的东西也有点问题,暂时就先这样了
VueJS的事件绑定
这里使用了v-on:change来为下拉列表框绑定了改变事件,对应的方法就是vue实例里边methods下面的方法:prochange
方法
v-on:change="prochange()"
methods: {
prochange: function () {
//查询数据,然后给该省下面的诚实赋值
this.$data.citys = getCityByPid($("#provice").val());
}
}这样做的好处就是如果使用vue里边的方法可以放方便的使用vue实例里边对应的数据
通过this.$data就可以获取


更新:
获取值也用vue,不用jquery。用vue获取select选中的的值
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<div id="pro_citys">
省:<select id="provice" v-on:change="getCitys" v-model="selected">
<option v-for="item in provices" :value="item.Id">{{item.ProviceName}}</option>
</select>
市:
<select id="city">
<option v-for="item in citys" :value="item.Id">{{item.CityName}}</option>
</select>
</div>
<script>
var vm = new Vue({
el: "#pro_citys",
data: {
selected: "1",
provices: [],
citys: []
},
methods: {
getCitys: function () {
getCItys(vm.$data.selected);
}
}
});
$.get('/vue/GetProvice', function (result) {
vm.$data.provices = result;
vm.$data.selected = vm.$data.provices[0].Id;
getCItys(vm.$data.selected);
})
var getCItys = function (pId) {
$.get('/vue/GetCitysProviceId?proviceId=' + pId, function (result) {
vm.$data.citys = result;
})
}
</script>
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价