写了一个input组件的测试代码,有些地方不是很懂,求指教?
Page({ changeValue : function (e){ console.log(e.detail); var value = e.detail.value,pos = e.detail.cursor,left; //计算光标位置 if (pos != -1) { //光标在中间位置 left = value.slice(0,pos); //修改后光标位置要随之变化 pos = left.replace(/123/g, '2' ).length; } return { value : e.detail.value.replace(/123/g, '2' ), cursor : pos } }, }); |
< view class = "section" > < input placeholder = "内容中123会被替换成0" bindinput = "changeValue" type = "number" maxlength = "20" /> </ view > |
问题1:这段代码作用主要是将输入内容‘123’用‘2’代替,changeValue事件函数里面调用了一个return方法,我想知道return返回的时候是不是有触发渲染的作用,因为我把return注掉,输入123就不再被替换。
问题2:changeValue事件函数里面第一句是打印e.detail,我打印出来是“{value: “1234567”, cursor: 7}”这种,打印内容在后面return处有所照应,我想知道的是通常打印e.detail到底是打印出来什么内容呢,因为这段代码__‘console.log(e.detail);’是第一句,我并不知道会打印什么东西。__