Javascript 使用react时fom在preventDefault()之后提交
我在这里所做的是点击一个链接,验证是否所有字段都已填写,如果像往常一样填写提交表单,否则将显示一些错误。但是,在react中使用Javascript 使用react时fom在preventDefault()之后提交,javascript,reactjs,Javascript,Reactjs,我在这里所做的是点击一个链接,验证是否所有字段都已填写,如果像往常一样填写提交表单,否则将显示一些错误。但是,在react中使用e.preventdefault之后,如何继续正常提交表单 var formComponent = React.createClass({ verifyFields: function (e) { e.preventDefault(); if (this.state.primaryGuestName && this.state.primaryGu
e.preventdefault
之后,如何继续正常提交表单
var formComponent = React.createClass({
verifyFields: function (e) {
e.preventDefault();
if (this.state.primaryGuestName && this.state.primaryGuestMobile) {
// how can i continue with form submission here(not using xhr)
} else {
showErrors();
}
},
render: function () {
<form action={this.props.action} ref="booking_form" acceptCharset="UTF-8" method="post">
{form contents}
<a href="" name="submit_details" onClick={this.verifyFields}
className="btn-flat btn-large rd-button">Confirm Details</a>
</form>
}
}
var formComponent=React.createClass({
验证字段:函数(e){
e、 预防默认值();
if(this.state.primaryGuestName&&this.state.primaryGuestMobile){
//如何在此处继续表单提交(不使用xhr)
}否则{
淋浴器();
}
},
渲染:函数(){
{表单内容}
}
}
在表单上调用提交
e.preventDefault();
if (this.state.primaryGuestName && this.state.primaryGuestMobile) {
e.target.submit();
} else {
showErrors();
}
}
要显式提交表单,需要调用
submit()
方法
你的verifyFields函数会变成这样
verifyFields: function (e) {
e.preventDefault();
if (this.state.primaryGuestName && this.state.primaryGuestMobile) {
// how can i continue with form submission here(not using xhr)
document.getElementById('myForm').submit();
} else {
showErrors();
}
},
您不应该在dom中查询表单,而是使用
onSubmit
事件和按钮,这样实现就更简洁了:
var formComponent = React.createClass({
submit: function(e) {
if (!this.verifyFields()) {
e.preventDefault();
showErrors();
return false;
}
// continue here..
return true;
},
verifyFields: function () {
return this.state.primaryGuestName && this.state.primaryGuestMobile;
},
render: function () {
return (
<form action={this.props.action} onSubmit={this.submit} acceptCharset="UTF-8" method="post">
{form contents}
<button type="submit" className="btn-flat btn-large rd-button">Confirm Details</button>
</form>
);
}
});
var formComponent=React.createClass({
提交:职能(e){
如果(!this.verifyFields()){
e、 预防默认值();
淋浴器();
返回false;
}
//继续这里。。
返回true;
},
验证字段:函数(){
返回this.state.primaryGuestName&&this.state.primaryGuestMobile;
},
渲染:函数(){
返回(
{表单内容}
确认细节
);
}
});
这不起作用,因为它会抛出未定义的函数submit()。你是对的。我误读了你的代码,因为表单上有事件。