Javascript 仅当表单验证成功时才发送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

我使用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="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验证功能中的