折腾:
【未解决】小程序中点击按钮调用服务器接口返回数据
期间,需要先去搞清楚,如何在点击按钮时,获取input输出的值:
<button id="queryButton" bindtap="submitQuery">查询</button> //事件处理函数 submitQuery: function () { console.log("submitQuery") },
支持点击了:
但是需要去获取当前input中输出的值
小程序 获取input值
e.detail.value.username ?
但是此处不是点击input啊
可以直接获取?
用:e.detail.value是因为:在form表单中才行
果然是的:
formSubmit: function(e) { console.log('form发生了submit事件,携带数据为:', e.detail.value) },
小白简单demo:简单的input输入值的获取和传递-微信小程序俱乐部 www.wxappclub.com
当input值变化,去存起来,后续再调用的
才看到,和官网的:
是一致的
用代码:
<input id="queryInput" bindinput='inputCallback' bindconfirm="inputConfirmCallback" type="text" placeholder="请输入要查询的英文绘本名称" value=""> </input>
js:
Page({ data: { curInputValue: "", motto: '绘本查询精灵', userInfo: {}, hasUserInfo: false, canIUse: wx.canIUse('button.open-type.getUserInfo') }, //事件处理函数 inputCallback: function (e) { console.log("inputCallback: e=%o", e) this.setData({ curInputValue: e.detail.value }) console.log("curInputValue=%s", this.data.curInputValue) }, inputConfirmCallback: function (e) { console.log("inputConfirmCallback: e=%o", e) this.submitQuery() }, submitQuery: function () { console.log("submitQuery") console.log("before submit: curInputValue=%s", this.data.curInputValue) },
可以实现输入和回车触发confirm了:
On app route: pages/index/index WAService.js:18 Update view with init data WAService.js:18 pages/index/index: onLoad have been invoked WAService.js:18 pages/index/index: onShow have been invoked WAService.js:18 Invoke event onReady in page: pages/index/index WAService.js:18 pages/index/index: onReady have been invoked WAService.js:18 Invoke event inputCallback in page: pages/index/index index.js? [sm]:16 inputCallback: e=Object index.js? [sm]:22 curInputValue=b WAService.js:18 Invoke event inputCallback in page: pages/index/index index.js? [sm]:16 inputCallback: e=Object index.js? [sm]:22 curInputValue=bo WAService.js:18 Invoke event inputCallback in page: pages/index/index index.js? [sm]:16 inputCallback: e=Object index.js? [sm]:22 curInputValue=boo WAService.js:18 Invoke event inputCallback in page: pages/index/index index.js? [sm]:16 inputCallback: e=Object index.js? [sm]:22 curInputValue=book WAService.js:18 Invoke event submitQuery in page: pages/index/index index.js? [sm]:30 submitQuery index.js? [sm]:32 before submit: curInputValue=book WAService.js:18 Invoke event inputCallback in page: pages/index/index index.js? [sm]:16 inputCallback: e=Object index.js? [sm]:22 curInputValue=boo WAService.js:18 Invoke event inputConfirmCallback in page: pages/index/index index.js? [sm]:25 inputConfirmCallback: e=Object index.js? [sm]:30 submitQuery index.js? [sm]:32 before submit: curInputValue=boo
【总结】
对于代码:
index.wxml
<input id="queryInput" bindinput='inputCallback' bindconfirm="inputConfirmCallback" type="text" placeholder="请输入要查询的英文绘本名称" value=""> </input> <button id="queryButton" bindtap="submitQuery">查询</button>
以及index.js:
//index.js //获取应用实例 const app = getApp() Page({ data: { curInputValue: "", }, //事件处理函数 inputCallback: function (e) { console.log("inputCallback: e=%o", e) this.setData({ curInputValue: e.detail.value }) console.log("curInputValue=%s", this.data.curInputValue) }, inputConfirmCallback: function (e) { console.log("inputConfirmCallback: e=%o", e) this.submitQuery() }, submitQuery: function () { console.log("submitQuery") console.log("before submit: curInputValue=%s", this.data.curInputValue) }, })
可以实现:
- 当input输入地址发生变化时,bindinput触发inputCallback,更新最新的值到this.data.curInputValue
- 然后当点击按钮时触发submitQuery,去获取到最新的input的值:this.data.curInputValue
- 另外顺带加上:当键盘中回车,完成时,触发:inputConfirmCallback
转载请注明:在路上 » 【已解决】小程序中如何在按钮点击中获取input输出的值