小程序元素值双向绑定问题

官方给出的文档似乎并不好用

双向绑定语法

在 WXML 中,普通的属性的绑定是单向的。例如:

<input value="{{value}}" />

如果使用 this.setData({ value: 'leaf' }) 来更新 value ,this.data.value 和输入框的中显示的值都会被更新为 leaf ;但如果用户修改了输入框里的值,却不会同时改变 this.data.value 。

如果需要在用户输入的同时改变 this.data.value ,需要借助简易双向绑定机制。此时,可以在对应项目之前加入 model: 前缀:

<input model:value="{{value}}" />

这样,如果输入框的值被改变了, this.data.value 也会同时改变。同时, WXML 中所有绑定了 value 的位置也会被一同更新, 数据监听器 也会被正常触发。

 

在开发过程并没有实现像vue那样效果,那么怎么提交表单呢

<view class="content-box bred">
  <form bindsubmit='postPost'>
    <view><input class="bred input-text" name="subject" auto-focus placeholder="帖子标题"/></view>
    <view><textarea name="message" class="input-textarea mtop20" placeholder="详细内容" maxlength="500"/></view>
    <view class="bred media-box">上传图片</view>
    
    <view><button type="primary" form-type='submit'> 发布 </button></view>
  </form>
</view>

 

postPost: function (event) {
    let _this = this;
    _this.setData({ 
      subject: event.detail.value.subject,
      message: event.detail.value.message 
    });
    if(_this.data.subject=='') {
      _this.showToast('标题不可为空哦!');return;
    }
    if(_this.data.message.length < 2) {
      _this.showToast('内容不低于2个字哦'); return;
    }
})

就是这样在form中绑定bindsubmit 并且提交按钮form-type="submit",就可以提交了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中实现双向绑定有几种方法。一种方法是借助数组来实现。在微信小程序中,双向绑定是通过在模板中使用{{}}绑定变量数据,并在js中更新数据来实现的。但是如果想要实现模板中修改数据后,js中对应的变量数据也跟着修改,可以借助数组来实现。具体实现方法可以参考\[1\]。 另一种方法是使用组件内部的原生input元素value属性绑定到modelValue属性,并在输入新的时触发update:modelValue事件。这样可以实现简易的双向绑定。具体实现方法可以参考\[3\]。 需要注意的是,微信小程序中的双向绑定并不像Vue.js中那样直接支持data路径的绑定,只能是一个单一字段的绑定。例如,可以使用{{value}}来绑定一个变量的,但不能使用{{a.b}}来绑定一个对象的属性。这是微信小程序双向绑定的限制之一。更多关于微信小程序双向绑定的实现方法可以参考\[2\]。 总结起来,微信小程序中可以通过借助数组或使用组件内部的原生input元素value属性来实现简易的双向绑定。 #### 引用[.reference_title] - *1* [微信小程序实现双向绑定](https://blog.csdn.net/weixin_45092282/article/details/130933777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [微信小程序中如何实现双向绑定](https://blog.csdn.net/m0_37631110/article/details/128657366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值