input.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. Page({
  2. onShareAppMessage() {
  3. return {
  4. title: 'input',
  5. path: 'packageComponent/pages/form/input/input'
  6. }
  7. },
  8. data: {
  9. theme: 'light',
  10. focus: false,
  11. inputValue: ''
  12. },
  13. bindKeyInput(e) {
  14. this.setData({
  15. inputValue: e.detail.value
  16. })
  17. },
  18. bindReplaceInput(e) {
  19. const value = e.detail.value
  20. let pos = e.detail.cursor
  21. let left
  22. if (pos !== -1) {
  23. // 光标在中间
  24. left = e.detail.value.slice(0, pos)
  25. // 计算光标的位置
  26. pos = left.replace(/11/g, '2').length
  27. }
  28. // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置
  29. return {
  30. value: value.replace(/11/g, '2'),
  31. cursor: pos
  32. }
  33. // 或者直接返回字符串,光标在最后边
  34. // return value.replace(/11/g,'2'),
  35. },
  36. bindHideKeyboard(e) {
  37. if (e.detail.value === '123') {
  38. // 收起键盘
  39. wx.hideKeyboard()
  40. }
  41. },
  42. onLoad() {
  43. this.setData({
  44. theme: wx.getSystemInfoSync().theme || 'light'
  45. })
  46. if (wx.onThemeChange) {
  47. wx.onThemeChange(({theme}) => {
  48. this.setData({theme})
  49. })
  50. }
  51. }
  52. })