- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 2 个输入的登录表单,基本用户名/密码。我想验证两个文本值以禁用或启用“登录”按钮。
出于某种原因,我的 TextInput 在第一次尝试时没有检测到它何时真正为空,除非我再次按下退格键,然后我的按钮将被禁用/启用。必须与我拯救各州的方式有关。
这是代码:
我的状态如下:
this.state = {
loading: false,
username: {
text: '',
valid: false
},
password: {
text: '',
valid: false
},
isLoginValid: false
};
然后按钮是这些:
<TextInput
style={styles.textInput}
onChangeText={ (text) => { this.validateInput(text, 'username')}}
onKeyPress={ this.checkValidation.bind(this) }
value={this.state.username.text}
autoCapitalize={'none'}
placeholder={'Username'}
underlineColorAndroid="transparent"
/>
<TextInput
secureTextEntry={true}
style={styles.textInput}
onChangeText={ (text) => { this.validateInput(text, 'password')}}
onKeyPress={ this.checkValidation.bind(this) }
value={this.state.password.text}
autoCapitalize={'none'}
placeholder={'Password'}
underlineColorAndroid="transparent"
/>
最后,这是我处理按钮状态的 2 个函数,不用担心启用/禁用按钮的 bool 值,它工作正常。
validateInput(text, fieldname) {
var stateObject = {
text: text,
valid: text.length > 0
}
this.setState({ [fieldname]: stateObject });
}
checkValidation() {
var isValid = this.state.username.valid && this.state.password.valid;
this.setState({isLoginValid: isValid});
}
关于如何实现此目标的任何想法?
最佳答案
尝试使用 onChangeText 而不是 onKeyPress。onChangeText 将更改的文本作为参数传递给回调,onKeyPress 返回一个按下键的对象,所以警告是因为状态中的密码和用户名的属性文本持有一个对象而不是字符串。
编辑关于第二个问题(使用退格键),请注意 onKeyPress 在 onChange 回调之前被调用,因此验证是在您设置更改的文本之前发生的,请尝试完全删除 onKeyPress,并在 setState 之前在 validateInput 中进行验证检查。因此,您将使用要设置的最终属性调用一次 setState。
关于reactjs - 直到按下 2 'backspace' 才意识到 TextInput 是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205362/
我正在 try catch 表单输入字段中发生的每个删除和退格,我按以下方式进行操作: 它确实适用于退格键,但与左移或右移结合使用时不起作用。我怎样才能涵盖这些情况? 最佳答案 我不确定为什么组合键
我正在构建一个简单的应用程序,它基本上执行以下操作: logger.debug("Server start."); server.start(); System.in.read(); logger.d
我有一个 QLabel,当点击按钮时它会更新数字。有没有办法使用按钮删除或“退格”? 使用此代码单击时,每个按钮都会向 QLabel 附加一个数字 (0-9): ui->Label->setText(
我最近在设计一个android计算器,显示器名为fakedisplay。我现在为计算器添加一个退格键,代码如下: backspace.setOnClickListener(new View.O
我正在尝试自动化一些工具,我有 spawn /home/rundoc.sh $path $view expect "Please enter correct product number []"
我有一个输出 SQL 文件的 Python 应用程序: sql_string = "('" + name + "', " + age + "')," output_files['sql'].write
我正在制作类似于“Peter Answers”的东西。它被称为“阿德里安答案”,因为这是我的名字。但这无关紧要。这个问题之前已经回答过,但我不知道如何将其应用于我的情况。我需要退格键无法按住。如果按住
我查了很多网站都没有得到结果。我有一些只接受一个字符的 JTextField。我需要的是,当我按 BACKSPACE 时,该字符被清除,并且焦点返回到之前的 JTextField 等等。我向所有 JT
我正在尝试进行类似 facebook 的搜索(自动完成),如 facebook/gmail 的撰写消息一样。我的整个脚本位于http://jsfiddle.net/6YbrP/13/ .
我想在我的输入字段之一中禁用退格键,因此我编写了以下 jquery: $("#noBackspacesHere").keypress(function(e){ if(e.whi
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我明白了 \n = new line or carriage return \b = move cursor to the left once (does not delete anything) 当
我遇到了 QDoubleSpinBox 的问题。 “退格”键的编辑行为在某种程度上取决于后缀的大小。如果我将“m”设置为后缀,然后将光标设置在旋转框的末尾并按“退格键”,光标会跳过“m”后缀到可以使用
swift 中的 \b 是什么?我必须使用 \b 拆分从服务器接收到的字符串? 最佳答案 来自 "Strings and Characters"在 swift 引用: Special Characte
如何在 GWT 中确定用户按下了 Backspace 按钮?我试过这个,但它不起作用 @Override public void onKeyPress(KeyPressEvent event)
我想知道我做错了什么: $(".s").keypress(function(e) { switch (e.keyCode) { case 8: // Backspace
我觉得答案是“这不可能”,但我想我会问以满足我的好奇心。 我有一些代码在\n 不可避免的地方回显: echo "Hello \n"; echo "World!"; 我想简单地阅读该行(在代码输出中):
题目地址:https://leetcode.com/problems/backspace-string-compare/description/ 题目描述 Given two strings S
在我的 sqlplus(for oracle)命令行中,backespace 不起作用。如何配置 sqlplus 以使用退格从命令行删除字符?我不经常使用sqlplus命令行,只是为了快速干预我的数据
我正在尝试创建自定义 InputTextFormatter。 格式化程序用空格分隔数千个,并将点后的字符数限制为 2 个字符。 我想将光标移动到 TextField 值的末尾,但根据我在达到限制(2
我是一名优秀的程序员,十分优秀!