当前位置: 首页 > 知识库问答 >
问题:

android - 原生select在移动端双向绑定无效?

裴令秋
2023-08-23

在h5正常双向绑定数据,但是移动端的时候v-model就无效了,初始化不能正常选择,改变方法可以执行,但是selectedOption不变,这是什么原因如何解决?

<template>  <select class="select" name="select" v-model="selectedOption" @change="updateValue">    <option      v-for="item in props.options"      :value="item.value"      :key="item.value"    >      {{ item.text }}    </option>  </select></template><script setup lang="ts">import { ref, watch } from 'vue';type Options = {    text: string;    value: string | number;    selected?: boolean;    [key: string]: any;  }type Props = {  modelValue?: string | number;  options?: Array<Options>;};const props = withDefaults(defineProps<Props>(), {  modelValue: '',  options: null,});const emit = defineEmits(['update:modelValue']);const selectedOption = ref(props.modelValue);const updateValue = () => {  emit('update:modelValue', selectedOption.value);};</script>

共有2个答案

祁博涛
2023-08-23

可以尝试在列表中第一项添加一个 空值的禁用选项,示例如下:

<div>Selected: {{ selected }}</div><select v-model="selected">  <option disabled value="">Please select one</option>  <option>A</option>  <option>B</option>  <option>C</option></select>

表单输入绑定 - 选择器

如果 v-model 表达式的初始值不匹配任何一个选择项, <select> 元素会渲染成一个“未选择”的状态。在 iOS 上,这将导致用户无法选择第一项,因为 iOS 在这种情况下不会触发一个 change 事件。因此,我们建议提供一个空值的禁用选项,如上面的例子所示。
武琛
2023-08-23

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/select

原生的select本身就没有value属性,没法使用v-model。这里你应该在v-for循环的option元素上,按照条件设置selected属性。

 类似资料:
  • 本文向大家介绍vue双向绑定原理?相关面试题,主要包含被问及vue双向绑定原理?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)。

  • 本文向大家介绍Angular JS 双向绑定原理?相关面试题,主要包含被问及Angular JS 双向绑定原理?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Angular将双向绑定转换为一堆watch表达式,然后递归这些表达式检查是否发生过变化,如果变了则执行相应的watcher函数(指view上的指令,如ng-bind,ng-show等或是{{}})。等到model中的值不再发生变化

  • Mpx针对表单组件提供了wx:model双向绑定指令,类似于v-model,该指令是一个语法糖指令,监听了组件抛出的输入事件并对绑定的数据进行更新,默认情况下会监听表单组件的input事件,并将event.detail.value中的数据更新到组件的value属性上。 简单实用示例如下: <view> <input type="text" wx:model="{{message}}"> <

  • 双向绑定这个概念在angular出现的时候,就作为王牌概念. 现在几乎是个js前端框架,就有这个功能. 它的概念是: 某个变量, 如果展现在页面上的话: 如果在代码层面进行修改, 那么页面的值就会发生变化 如果在页面进行修改(例如在input标签中), 那么代码的值就会发生变化. 一个演示例子. 在我们的项目中,增加一个 vue页面: src/components/TwoWayBinding.vu

  • 单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。 有单向绑定,就有双向绑定。如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。 什么情况下用户可以更新View呢?填写表单就是一个最直接的例子。当用户填写表单时,View的状态就被更新了,如果此时MVVM框架可以自动更新Model的状态,那就相当于我

  • 本文向大家介绍JS原生数据双向绑定实现代码,包括了JS原生数据双向绑定实现代码的使用技巧和注意事项,需要的朋友参考一下 代码如下: 效果示例: 总结 以上所述是小编给大家介绍的JS原生数据双向绑定实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!