javascript - 使用 Vue JS 的下拉列表
问题描述
我用 HTML CSS 和 VueJS 编写了一个带有下拉列表的 html 页面。我希望如果我单击下拉列表中的某个选项,它会在控制台中显示一些内容。
我的html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript" src="js/historique.js"></script>
<title>Historique</title>
</head>
<body>
<select id="selectionMachines" size="1">
<option v-for="todo in todos" v-on:click="action">
{{ todo.libelle }}
</option>
</select>
</body>
</html>
还有我的 JS 代码:
window.onload = function () {
var machines = new Vue({
el:"#selectionMachines",
data: {
todos: [
{ libelle: "Machine 195", num: 195},
{ libelle: "Machine 196", num: 195}
]
},
methods: {
action: function() {
console.log(this.todo.num);
if (this.todos.num == 195)
console.log("J'ai choisi 195");
}
}
})
}
动作功能暂时不起作用,未定义是登录控制台。任何想法 ?
解决方案
该事件应绑定到
<select>
.事件应该将
$event
变量传递给函数选项的值应绑定到选项本身 (
:value=""
)。您将使用$event
($event.target.value
)获得此值即使您从字面上单击 a
<select>
和<option>
,事件也不是click()
,而是input
orchange
,因为它是一个输入字段。这不是 VueJS 问题,而是 JavaScript。你的
action()
方法是一个函数,所以如果你想让它被执行,那么你必须用括号(action()
)调用它,而不是它的“字符串值”(action
)。这与VueJS 模板中的计算不同,但 VueJS 处理了差异。注意你的
todos
- 两者都有一个num
值为195的键(所以你不会在控制台中看到差异,两者都会在那里记录195),尽管它们的标签 (libelle
) 表示 195 和 196你用你的
console.log(this.todo.num);
方法写作。我猜您尝试使用输入中选择的单个待办事项。这样做的问题是(和)只存在于您的模板中,您的脚本(如)不知道它们 - 您必须以某种方式将信息传递给这些脚本(对此有好处)。如果您想使用整个单个 todo 对象,那么我建议(或者因为您的值不是唯一的)。this.todos.num == 195
action()
input
todo in todos
methods
$event
find()
filter()
num
new Vue({
el: "#selectionMachines",
data: {
todos: [{
libelle: "Machine 195",
num: 195
},
{
libelle: "Machine 196",
num: 195
}
]
},
methods: {
action: function(event) {
console.log(event.target.value)
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<select id="selectionMachines" size="1" @change="action($event)">
<option v-for="todo in todos" :value="todo.num">
{{ todo.libelle }}
</option>
</select>
推荐阅读
- php - 将图像添加到 woocommerce 普通电子邮件页脚
- python - 在 Cython 中包装返回复杂类型向量的函数
- python - 访问 gcloud API 时需要登录
- salesforce - 如何在 Salesforce 中查询机会历史对象
- php - 如何在树莓派中使用 php 或 python 打印 .xlxs 文件?
- flutter - 无法让谷歌登录在flutter-web中工作
- wordpress - 如何在 Post Url Wordpress 中仅显示父类别
- postgresql - 在 PostgreSQL 中的函数内,对于 INSERT ON CONFLICT UPDATE 的列引用不明确
- python - 为什么这个 python while 循环没有结束?
- react-native - React Native 中的 JavaScript 版本不匹配