微信小程序中的input组件,用来采集用户输入文本,官方组件并未提供接口供清除页面上显示的用户输入的部分,比如想要做一个按键“清除输入”,就尴尬了,因为button组件的事件里没办法控制到input组件的属性。
网上搜了一些方法,比较讨巧的方式即,利用page data绑定的方式,即可实现上述功能,当然同时想要在程序中刷新input为其它信息也是很容易的事情了,具体参考以下代码:
xx.wxml部分,将input绑定一个变量inputTxt
view class="page-section" view class="weui-cells weui-cells_after-title" view class="weui-cell weui-cell_input" input class="weui-input" placeholder-style="color:#6aa84f" maxlength="50" placeholder="手动输入" value="{{inputTxt}}" confirm-type ="send" bindconfirm="bindConfirmControl"/ /view /view /view
xx.js部分,在page data中添加一个变量inputTxt
data: { inputTxt: '' } //在需要的地方调用setData,比如某button的触发事件中 this.setData ({ inputTxt: 'xxx' })
我的应用场景是,点击某button,从预置语料库中顺序挑一条语料,然后刷新到页面input组件框中显示,同时处理语料解析语义,获取语义结果后刷新到输出框中显示,具体代码如下:
bindTest: function () { log('astro.bindTest') var corpus = app.globalData.corpus; if (cursor++ = corpus.length - 1) { cursor = 0; } //顺序选择一句语料 var corpusSelected = corpus[cursor] this.setData({ //更新页面input框显示 inputTxt: corpusSelected }) log('selected corpus:' + corpusSelected) //调用语料处理,刷新输出框结果 NliProcess(corpusSelected, this); },
欢迎参与讨论!:)