【发布时间】:2017-12-19 11:15:34
【问题描述】:
为什么setCustomValidity() 在 React 中不起作用?我错过了什么吗?使用 vanillia HTML 和 JS 可以正常工作。或者还有其他方法可以轻松制作类似于setCustomValidity 的东西?
反应代码:
class Form extends React.Component {
formVal(e) {
e.target.setCustomValidity("Test_1");
}
formVal2() {
let inpt = document.getElementById("input");
inpt.target.setCustomValidity("TEST_2");
}
render() {
return (
<div>
<form>
<input
id="input"
type="datetime-local"
onBlur={this.formVal}
/>
</form>
<button onClick={this.formVal2}>Click </button>
</div>
);
}
}
没有反应:
<form>
<input type="email" id="mail" name="mail">
<button onclick="test()">Submit</button>
</form>
// JS
var input = document.getElementById("mail");
function test() {
input.setCustomValidity("test")
}
【问题讨论】:
-
检查函数formVal2,不需要
.target -
@Mikalai 你是对的,但仍然无法正常工作。 React 不推荐通过
document.getElementById()获取元素。
标签: javascript html reactjs