收藏
回答

手机微信小程序取值的不正常

请教个小程序方面的问题,我在开发者工具中用时,input中的值是取的到,为什么在手机上面取值不正常呢,要不取不到值,要不本次还是取的上一次的值,

wxml:

<view class="weui-search-bar" >

<view class="weui-search-bar__form">

<view class="weui-search-bar__box">

<input name="inputdata" class="weui-search-bar__input" placeholder="请输入查询内容"  bindblur="iearchInput" />

</view>

</view>

<button class="weui-search-bar__cancel-btn"  bindtap="so">

搜索

</button>

</view>

js中:

iearchInput:function(e){

var that=this;

that.data.sdata=e.detail.value;


},

so:function(){

var that = this;

var goodsearch = that.data.sdata;

if (goodsearch==''){

wx.showModal({

title: '错误',

content: that.data.sdata ,

showCancel: false,//是否显示取消按钮

confirmText: '确定',

confirmColor: "red",

success: function (res) {

if (res.confirm) {

}

}

})

return;

}

//跳转商品详情


wx.navigateTo({ url: '../shop/brand/brand?goodsname=' + goodsearch })

},


回答关注问题邀请回答
收藏

3 个回答

  • 2019-03-07

    iearchInput函数中 取到e.detail.value之后  不需要setData一下  下面能取到吗?


    2019-03-07
    有用
    回复 3
    • 乡民
      乡民
      2019-03-07

      实际上与setData无关,问题在手写完一个字后,不会马上触发   bindinput而已,所以按钮绑定的事件就根本得不到值,目前我采用的是bindblur这个方式解决数据处理也在这里面,也就是那个搜索按钮实际上是无效了,

      2019-03-07
      回复
    • 2019-03-07



      我这样是可以的  input取值没问题

      2019-03-07
      回复
    • 乡民
      乡民
      2019-03-07回复

      你如果再加个按钮去执行就知道了,你手写录入,马上按钮去执行,就会出现这个情况,这个bindinput的执行实际是在按钮执行之后的,所以按钮中的事件是取不到bindinput赋的值的,但是键盘录入,开发工具都不会有事,我昨晚用真机调试了各种方式得到的结果至少是这样的。

      2019-03-07
      回复
  • 是小白啊
    是小白啊
    2019-03-07

    手写输入不正常?

    2019-03-07
    有用
    回复 7
    • 乡民
      乡民
      2019-03-07

      问题在手写完一个字后,不会马上触发 绑定事件而已不象键盘会马上触发,所以按钮绑定的事件就根本得不到值,目前我采用的是bindblur这个方式解决数据处理也在这里面,也就是那个搜索按钮实际上是无效了,

      2019-03-07
      回复
    • 是小白啊
      是小白啊
      2019-03-07回复乡民

      麻烦提供下复现的代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2019-03-07
      回复
    • 乡民
      乡民
      2019-03-07回复是小白啊

      https://developers.weixin.qq.com/s/o1E06GmN7p6i你可以试试手机输入框,手写输入后点击搜索按钮,看能不能取值出来的,我刚试了,如果用点那个输入法的弯了一下的箭头(可能是返回那个吧)是可以取值,简单的说,就是只手写,不点击键盘是取不到值,应该是手写输入是不能触发bindinput之类的事件,这类事件应是键盘事件吧

      2019-03-07
      回复
    • 是小白啊
      是小白啊
      2019-03-07回复乡民

      我这边测试在未失去焦点的时候,点击搜索是有反应的,你的测试机型以及微信版本是?

      2019-03-07
      回复
    • 乡民
      乡民
      2019-03-07回复是小白啊

      微信版本是那个另行打补丁的7.0.3,手机用的荣耀7C,反正我手写时,未失去焦点,哪怕是失去了焦点,只要不点击输入法键盘,点击搜索是绝对只会执行那个没值的提示,是取不到值的

      2019-03-07
      回复
    查看更多(2)
  • 连胜
    连胜
    2019-03-06

    建议你打印一下日志,看看有没有执行bindblur事件,或者再添加一个bindinput事件

    2019-03-06
    有用
    回复 1
    • 乡民
      乡民
      2019-03-07

      将数据处理写到bindblur事件中,so就写个空的哄哄人,这样就解决了手写输入的问题了,

      2019-03-07
      回复
登录 后发表内容