vue中select的使用、默认选择、onchange/change事件等操作实例
本节重点
- vue中select的基本使用
- vue中select的默认选择
- vue中select的change事件
select的基本使用
首先看下面一个实例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue中Select选择框及change事件,默认选择</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body>
<H1>Select选择框极其值获取,默认选择</H1>
<div id="app">
<label for="languages">编程语言:</label>
<select id="languages" v-model="languageSelected">
<option :value="language.code" v-for="language in languages">{{language.desc}}</option>
</select>
</div>
<script type="text/javascript">
var app = new Vue({
el: "#app",
data: {
languages: [
{
code: 'Java',
desc: 'Java语言'
},
{
code: 'Python',
desc: 'Python语言'
},
{
code: 'PHP',
desc: 'PHP语言'
}
],
languageSelected: null
}
})
</script>
</body>
</html>
以上实现了基本的select数据读取,select选择内容的呈现,已经结果的绑定。首先,通过v-for属性遍历vue中定义的编程语言languages,并将languages中的每项数据的code赋值给option的value,desc赋值给option的描述部分。
同时,select标签上绑定了languageSelected,用来接收和初始化数据。
默认选择
但上面的写法有一个问题,就是默认没有选择项,显示空白。那么如何提供默认的选择数据呢。有几种方法可供选择。
第一,通过created方法来初始化languageSelected数据,修改之后的代码如下:
var app = new Vue({
el: "#app",
data: {
languages: [
{
code: 'Java',
desc: 'Java语言'
},
{
code: 'Python',
desc: 'Python语言'
},
{
code: 'PHP',
desc: 'PHP语言'
}
],
languageSelected: null
},
created() {
this.languageSelected = this.languages[1].code;
}
})
这样,在初始化的时候,将languageSelected赋值,vue会自动匹配并进行绑定变更。当然这里只是直接获得数组中的数据,在实践的过程中,往往是获得服务器的数据。
第二种方案:直接初始化时赋值languageSelected,实例代码如下:
var app = new Vue({
el: "#app",
data: {
languages: [
{
code: 'Java',
desc: 'Java语言'
},
{
code: 'Python',
desc: 'Python语言'
},
{
code: 'PHP',
desc: 'PHP语言'
}
],
languageSelected: 'PHP'
}
})
这种方案与第一种方案差不多,只不过初始化时机不同。
change事件
经过上面的方式以及进行select的初始化和默认项选择,那么如何监听select的选中事件并进行相应的操作呢。在vue中,直接获取对应的绑定值即可。
首先通过@change绑定监听事件selectChanged,并在vue的method中定义对应的方法。
<select id="languages" v-model="languageSelected" @change="selectChanged">
<option :value="language.code" v-for="language in languages">{{language.desc}}</option>
</select>
methods: {
selectChanged: function () {
console.log(app.languageSelected);
}
}
在定义的方法中打印了当前被选中的option的值。其他业务逻辑可根据此值进行相应的操作。
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue中Select选择框及change事件,默认选择</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body>
<H1>Select选择框极其值获取,默认选择</H1>
<div id="app">
<label for="languages">编程语言:</label>
<select id="languages" v-model="languageSelected" @change="selectChanged">
<option :value="language.code" v-for="language in languages">{{language.desc}}</option>
</select>
</div>
<script type="text/javascript">
var app = new Vue({
el: "#app",
data: {
languages: [
{
code: 'Java',
desc: 'Java语言'
},
{
code: 'Python',
desc: 'Python语言'
},
{
code: 'PHP',
desc: 'PHP语言'
}
],
languageSelected: null
},
created() {
this.languageSelected = this.languages[1].code;
},
methods: {
selectChanged: function () {
console.log(app.languageSelected);
}
}
})
</script>
</body>
</html>

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接