314 lines
6.6 KiB
JavaScript
314 lines
6.6 KiB
JavaScript
const __templateJs = require("./templates.js");
|
|
const __mergePageOptions = require("../../util/mergePageOptions.js");
|
|
Page(__mergePageOptions({
|
|
onShareAppMessage() {
|
|
return {
|
|
title: 'input',
|
|
path: 'page/component/pages/input/input'
|
|
};
|
|
},
|
|
data: {
|
|
// 非受控
|
|
inputNotBindValue: '',
|
|
// 非受控有长度
|
|
inputNotBindValueMaxLength: '',
|
|
// 受控
|
|
inputBindValue: '',
|
|
// 受控只能输入英文
|
|
wordValue: '',
|
|
// 受控有长度
|
|
inputMaxLengthValue: '',
|
|
// 不限制长度
|
|
inputMaxLengthInfinity: '',
|
|
// 密码输入
|
|
inputPassword: '',
|
|
// 数字输入
|
|
inputNumber: '',
|
|
// 不可输入
|
|
disabledValue: 'disabled',
|
|
inputValue: '',
|
|
inputChangeValue: '',
|
|
// 非受控 textarea
|
|
textareaNotBindValue: '',
|
|
// 受控 textarea
|
|
textareaBindValue: '',
|
|
// 受控只能输入英文
|
|
textareaWordValue: '',
|
|
// 受控最大长度
|
|
textareaMaxLengthValue: '',
|
|
// 非受控最大
|
|
textareaNoBindMaxLengthValue: '',
|
|
// 无限长度的 textarea
|
|
textareaInfinityLengthValue: '',
|
|
// 不可输入的 textarea
|
|
textareaDisabled: `I'm disabled
|
|
I'm disabled
|
|
I'm disabled
|
|
`,
|
|
password: false,
|
|
focus: false,
|
|
value: '',
|
|
type: 'text',
|
|
placeholder: '',
|
|
placeholderClass: 'input-placeholder',
|
|
disabled: false,
|
|
maxlength: 140,
|
|
autoFocus: false,
|
|
cursor: -1,
|
|
selectionStart: -1,
|
|
selectionEnd: -1,
|
|
focusTime: 0,
|
|
blurTime: 0
|
|
},
|
|
// 非受控
|
|
bindNotBindInput(e) {
|
|
this.setData({
|
|
inputNotBindValue: e.detail.value
|
|
});
|
|
},
|
|
// 非受控有长度
|
|
bindInputNotBindValueMaxLength(e) {
|
|
this.setData({
|
|
inputNotBindValueMaxLength: e.detail.value
|
|
});
|
|
},
|
|
// 受控
|
|
bindBindInput(e) {
|
|
this.setData({
|
|
inputBindValue: e.detail.value
|
|
});
|
|
},
|
|
// 受控只能输入英文
|
|
bindWordInput(e) {
|
|
const value = e.detail.value;
|
|
console.log("%c Line:46 🍐 value", "color:#93c0a4", value);
|
|
// 过滤非英文字母
|
|
const valueFilter = value.replace(/[^A-Za-z]/ig, '');
|
|
console.log("%c Line:49 🥕 valueFilter", "color:#42b983", valueFilter);
|
|
this.setData({
|
|
wordValue: valueFilter
|
|
});
|
|
},
|
|
// 受控 textarea 只能输入英文
|
|
bindTextareaWordInput(e) {
|
|
const value = e.detail.value;
|
|
console.log("%c Line:46 🍐 value", "color:#93c0a4", value);
|
|
// 过滤非英文字母
|
|
const valueFilter = value.replace(/[^A-Za-z]/ig, '');
|
|
console.log("%c Line:49 🥕 valueFilter", "color:#42b983", valueFilter);
|
|
this.setData({
|
|
textareaWordValue: valueFilter
|
|
});
|
|
},
|
|
// 受控有长度
|
|
bindMaxLengthInput(e) {
|
|
this.setData({
|
|
inputMaxLengthValue: e.detail.value
|
|
});
|
|
},
|
|
// 受控不限制长度
|
|
bindInputMaxLengthInfinity(e) {
|
|
this.setData({
|
|
inputMaxLengthInfinity: e.detail.value
|
|
});
|
|
},
|
|
// 受控密码输入
|
|
bindPasswordInput(e) {
|
|
this.setData({
|
|
inputPassword: e.detail.value
|
|
});
|
|
},
|
|
// 输入数字
|
|
bindNumberInput(e) {
|
|
this.setData({
|
|
inputNumber: e.detail.value
|
|
});
|
|
},
|
|
// 不可输入
|
|
bindDisabledInput(e) {
|
|
this.setData({
|
|
disabledValue: e.detail.value
|
|
});
|
|
},
|
|
// 非受控 textarea
|
|
bindTextareaNoBindInput(e) {
|
|
this.setData({
|
|
textareaNotBindValue: e.detail.value
|
|
});
|
|
},
|
|
// 受控 textarea
|
|
bindTextareaBindValue(e) {
|
|
console.log("%c Line:63 🌰 e", "color:#6ec1c2", e);
|
|
this.setData({
|
|
textareaBindValue: e.detail.value
|
|
});
|
|
},
|
|
// 最大长度
|
|
bindTextareaMaxLengthInput(e) {
|
|
this.setData({
|
|
textareaMaxLengthValue: e.detail.value
|
|
});
|
|
},
|
|
bindTextareaNoBindMaxLengthValue(e) {
|
|
this.setData({
|
|
textareaNoBindMaxLengthValue: e.detail.value
|
|
});
|
|
},
|
|
// 长度不受限的 textarea
|
|
bindTextareaInfinityLengthValue(e) {
|
|
this.setData({
|
|
textareaInfinityLengthValue: e.detail.value
|
|
});
|
|
},
|
|
// 不可输入的 textarea
|
|
bindTextareaDisabledInput(e) {
|
|
this.setData({
|
|
textareaDisabled: e.detail.value
|
|
});
|
|
},
|
|
bindKeyInput(e) {
|
|
this.setData({
|
|
inputValue: e.detail.value
|
|
});
|
|
},
|
|
bindReplaceInput(e) {
|
|
xhs.showToast({
|
|
title: e.detail.value,
|
|
icon: 'success',
|
|
duration: 2000
|
|
});
|
|
this.setData({
|
|
value: e.detail.value
|
|
});
|
|
// const value = e.detail.value
|
|
// let pos = e.detail.cursor
|
|
// let left
|
|
// if (pos !== -1) {
|
|
// // 光标在中间
|
|
// left = e.detail.value.slice(0, pos)
|
|
// // 计算光标的位置
|
|
// pos = left.replace(/11/g, '2').length
|
|
// }
|
|
|
|
// // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置
|
|
// return {
|
|
// value: value.replace(/11/g, '2'),
|
|
// cursor: pos,
|
|
// }
|
|
|
|
// 或者直接返回字符串,光标在最后边
|
|
// return value.replace(/11/g,'2'),
|
|
},
|
|
|
|
bindHideKeyboard(e) {
|
|
if (e.detail.value === '123') {
|
|
// 收起键盘
|
|
xhs.hideKeyboard();
|
|
}
|
|
},
|
|
changeValue({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
value: detail.value
|
|
});
|
|
},
|
|
changePlaceholder({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
placeholder: detail.value
|
|
});
|
|
},
|
|
changePlaceholderStyle({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
placeholderStyle: detail.value
|
|
});
|
|
},
|
|
changePlaceholderClass({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
placeholderClass: detail.value
|
|
});
|
|
},
|
|
changeDisabled() {
|
|
this.setData({
|
|
disabled: !this.data.disabled
|
|
});
|
|
},
|
|
changePassword() {
|
|
this.setData({
|
|
password: !this.data.password
|
|
});
|
|
},
|
|
changeMaxlength({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
maxlength: detail.value
|
|
});
|
|
},
|
|
changeFocus() {
|
|
this.setData({
|
|
focus: !this.data.focus
|
|
});
|
|
},
|
|
changeCursor({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
cursor: detail.value
|
|
});
|
|
},
|
|
changeType({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
type: detail.value
|
|
});
|
|
},
|
|
changeSelectionStart({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
selectionStart: detail.value
|
|
});
|
|
},
|
|
changeSelectionEnd({
|
|
detail
|
|
}) {
|
|
this.setData({
|
|
selectionEnd: detail.value
|
|
});
|
|
},
|
|
bindTextFocus({
|
|
timeStamp
|
|
}) {
|
|
this.setData({
|
|
focusTime: new Date(timeStamp).toLocaleString()
|
|
});
|
|
},
|
|
bindTextBlur({
|
|
timeStamp
|
|
}) {
|
|
this.setData({
|
|
blurTime: new Date(timeStamp).toLocaleString()
|
|
});
|
|
},
|
|
bindTextInput(e) {
|
|
console.log(`bindTextInput: ${JSON.stringify(e)}`);
|
|
this.setData({
|
|
inputChangeValue: e.detail.value
|
|
});
|
|
},
|
|
onChange(e) {
|
|
console.log('onChange', e);
|
|
},
|
|
bindconfirm(e) {
|
|
console.log('bindconfirm', e);
|
|
}
|
|
}, __templateJs));
|