Vue.js - 将同名的无线电元素绑定到数组
Vue.js - Binding radio elements of same name to array
我是 Vue.js 的新手,在处理特定案例时遇到了问题。我有多个无线电组,我想将它们绑定到单个 Vue.js 数据数组。在您输出结果数组之前,这似乎按预期工作。
Vue.js 正在创建一个(任意?)包含许多未定义元素的长数组。该数组还包含正确的值。我下面的示例既将结果记录到控制台,又将其输出到文本框,您可以在其中看到所有其他逗号。
jQuery(document).ready(function($) {
var vm = new Vue({
el: '#quiz-layout',
data: {
'question': []
},
watch: {
question: {
handler: function(v) {
console.log(v);
},
immediate: true,
}
}
});
});
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/vue/1.0.12/vue.min.js"></script>
</head>
<body>
<form id="quiz-layout">
<h4>What is your name?</h4>
<label for="question_0_answer_0">Bob</label>
<input type="radio" name="question[0]" value="bob" id="question_0_answer_0" v-model="question[0]" />
<br />
<label for="question_0_answer_1">Jim</label>
<input type="radio" name="question[0]" value="jim" id="question_0_answer_1" v-model="question[0]" />
<br />
<h4>How old are you?</h4>
<label for="question_1_answer_0">10</label>
<input type="radio" name="question[1]" value="10" id="question_1_answer_0" v-model="question[1]" />
<br />
<label for="question_1_answer_1">54</label>
<input type="radio" name="question[1]" value="54" id="question_1_answer_1" v-model="question[1]" />
<br />
<input type="text" value="{{question}}" />
</form>
</body>
</html>
生成的数组应该只有两个元素长,而不是十一个元素。所有其他元素来自哪里?
我查看了你的问题,发现了 Vue.js
的核心错误。
但是,我向 GitHub 发送了一个 pull request,我正在等待创作者的回复。
错误修复后我会更新此答案。
编辑
错误已修复。
我是 Vue.js 的新手,在处理特定案例时遇到了问题。我有多个无线电组,我想将它们绑定到单个 Vue.js 数据数组。在您输出结果数组之前,这似乎按预期工作。
Vue.js 正在创建一个(任意?)包含许多未定义元素的长数组。该数组还包含正确的值。我下面的示例既将结果记录到控制台,又将其输出到文本框,您可以在其中看到所有其他逗号。
jQuery(document).ready(function($) {
var vm = new Vue({
el: '#quiz-layout',
data: {
'question': []
},
watch: {
question: {
handler: function(v) {
console.log(v);
},
immediate: true,
}
}
});
});
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.jsdelivr.net/vue/1.0.12/vue.min.js"></script>
</head>
<body>
<form id="quiz-layout">
<h4>What is your name?</h4>
<label for="question_0_answer_0">Bob</label>
<input type="radio" name="question[0]" value="bob" id="question_0_answer_0" v-model="question[0]" />
<br />
<label for="question_0_answer_1">Jim</label>
<input type="radio" name="question[0]" value="jim" id="question_0_answer_1" v-model="question[0]" />
<br />
<h4>How old are you?</h4>
<label for="question_1_answer_0">10</label>
<input type="radio" name="question[1]" value="10" id="question_1_answer_0" v-model="question[1]" />
<br />
<label for="question_1_answer_1">54</label>
<input type="radio" name="question[1]" value="54" id="question_1_answer_1" v-model="question[1]" />
<br />
<input type="text" value="{{question}}" />
</form>
</body>
</html>
生成的数组应该只有两个元素长,而不是十一个元素。所有其他元素来自哪里?
我查看了你的问题,发现了 Vue.js
的核心错误。
但是,我向 GitHub 发送了一个 pull request,我正在等待创作者的回复。
错误修复后我会更新此答案。
编辑
错误已修复。