微信小程序中的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);
},
欢迎参与讨论!:)