Internet explorer Vue.js-IE11中的动态输入中断
在IE中查看我的应用程序时,尝试在Vue中创建动态输入时出错。页面未加载,我得到“严格模式下不允许多个属性定义” 输入同时具有v-model和:value属性,在大多数情况下,这些冲突是有意义的。但是,对于多个复选框和单选按钮,该属性对于确定为v-model分配的值应该是什么是必需的 即使显示这是使用复选框数组的正确方法,但它们不使用动态值属性。由于该组件的使用方式,该值需要是动态的 下面是代码的抽象外观:Internet explorer Vue.js-IE11中的动态输入中断,internet-explorer,vue.js,internet-explorer-11,checkboxlist,strict-mode,Internet Explorer,Vue.js,Internet Explorer 11,Checkboxlist,Strict Mode,在IE中查看我的应用程序时,尝试在Vue中创建动态输入时出错。页面未加载,我得到“严格模式下不允许多个属性定义” 输入同时具有v-model和:value属性,在大多数情况下,这些冲突是有意义的。但是,对于多个复选框和单选按钮,该属性对于确定为v-model分配的值应该是什么是必需的 即使显示这是使用复选框数组的正确方法,但它们不使用动态值属性。由于该组件的使用方式,该值需要是动态的 下面是代码的抽象外观: <input v-model="questionAnswer" :disa
<input
v-model="questionAnswer"
:disabled="readOnly"
:type="type"
:value="value"
>
IE中的这个错误有什么解决方法吗?它在所有其他浏览器中都能正常工作。谢谢
v型
在输入上
:
因为你说你发布的是“代码抽象的样子”,所以很难给出确切的答案,但我认为这会有所帮助。如果没有,请发布一个简单的工作示例来显示您的bug
此外,我还测试了您在IE11中引用的多复选框示例,该示例运行良好。“严格模式下不允许对属性进行多个定义。”
在代码中设置重复属性时,通常会出现此问题
v-model将忽略任何表单元素上的初始值、选中或选定属性。它将始终将Vue实例数据视为真相的来源。您应该在组件的data选项内的JavaScript端声明初始值
问题可能在于:value=“value”绑定可能与v-model vlue冲突
我想问一下,您的代码显示了错误消息的哪一行
以下是可能对您的要求有所帮助的工作代码:
{{checkedvalue.valueselect}
选中的名称:{{checkedNames}
var demo=新的Vue({
el:'演示',
数据:{
选中名称:[],
名称列表:[{
valueselect:'aaa'
}, {
valueselect:'bbb'
}, {
值选择:“ccc”
}]
},
方法:{
检查:功能(e){
如果(例如,选中目标){
console.log(例如target.value)
}
}
}
})
这里有一个参考链接也可能对您有所帮助:这个错误确实是由同一元素上的
v-model
和:value
指令引起的。IE中生成的JS代码类似于
{value:'value1',value:'value2'}
v-model
应以不同方式处理某些标记。对于复选框,它应该生成一个选中的
道具,而不是值
道具。但在IE中,这种特殊情况的检查似乎有问题。仅当您按字面而不是表达式设置输入类型时,它才起作用。对我来说,它是这样工作的:
<input type="checkbox" :value="value" v-model="model" />
而不是:
<input :type="type" :value="value" v-model="model" />
你真是个天才!这非常有用。
<div id="demo">
<div v-for="checkedvalue in NamesList">
<input type="checkbox" :value="checkedvalue.valueselect" v-model="checkedNames" @click="check($event)" > {{checkedvalue.valueselect}}
</div>
<span>Checked names:{{ checkedNames }}</span>
</div>
<script>
var demo = new Vue({
el: '#demo',
data: {
checkedNames: [],
NamesList: [{
valueselect: 'aaa'
}, {
valueselect: 'bbb'
}, {
valueselect: 'ccc'
}]
},
methods: {
check: function (e) {
if (e.target.checked) {
console.log(e.target.value)
}
}
}
})
</script>
<input type="checkbox" :value="value" v-model="model" />
<input :type="type" :value="value" v-model="model" />