Javascript 仅当表单验证成功时才发送AJAX请求
我使用Polymer 1.0 iron表单获取用户输入,并使用iron AJAX向服务器发送AJAX请求:Javascript 仅当表单验证成功时才发送AJAX请求,javascript,forms,validation,polymer,polymer-1.0,Javascript,Forms,Validation,Polymer,Polymer 1.0,我使用Polymer 1.0 iron表单获取用户输入,并使用iron AJAX向服务器发送AJAX请求: <form is="iron-form" id="form" > <paper-input name="userEmail" label="Email" required></paper-input> <paper-input name="password" type="password" label="Passw
<form is="iron-form" id="form" >
<paper-input name="userEmail" label="Email" required></paper-input>
<paper-input name="password" type="password" label="Password" required></paper-input>
<br>
<paper-button raised
on-click="login">Submit</paper-button>
</form>
<script>
(function() {
Polymer({
is: 'module-login',
login: function() {
// this is used to trigger Polymer's form validation
Polymer.dom(event).localTarget.parentElement.submit();
// this is my ajax request
this.$.auth.login(this.$.userEmail.value, this.$.password.value);
}
});
})();
</script>
提交
(功能(){
聚合物({
是:'模块登录',
登录:函数(){
//这用于触发聚合物的形式验证
Polymer.dom(event.localTarget.parentElement.submit();
//这是我的ajax请求
this.auth.login(this.userEmail.value,this.password.value);
}
});
})();
其中Polymer.dom(event.localTarget.parentElement.submit()代码>用于验证表单是否需要输入
因此,我试图实现的是仅在表单验证成功时发送AJAX请求,但此时即使表单显示错误,它仍将继续处理AJAX请求
我可能需要将验证和实际的AJAX请求放入两个不同的调用中,但我有点卡住了 我不认为Polymer.dom(event.localTarget.parentElement.submit()
运行任何验证,实际上只是提交表单。看
如该链接所示,您应该使用的实际方法是.validate()
。这将返回一个布尔值,这意味着您可以将实际登录调用包装在if
语句中:
if ( Polymer.dom(event).localTarget.parentElement.validate() ) {
this.$.auth.login(this.$.userEmail.value, this.$.password.value);
}
不知怎的,validate()不会显示错误消息,它会突出显示输入字段,但不会显示带有错误消息的框,如submit()doesAh。我发现,那些弹出的框是内置于Chrome验证功能中的