jquery - 在通过ajax提交之前使用jquery验证来验证表单

标签 jquery ajax forms validation

我正在尝试使用 Ajax 将表单提交到某个页面,然后获取消息。我正在尝试使用 jqueryvalidation 插件验证表单。 我使用以下代码通过 Ajax 提交表单。

<script type ="text/javascript">

jQuery(document).ready(function() {

  jQuery("#footercontact").submit(function(event) {
    form = $('#footercontact').serialize();
    $('#footercontact').validate();
    $.ajax({
      type: 'post',
      url: '<?php echo base_url();?>index.php/welcome/test',
      data: form,
      dataType: 'html',
      success: function(data) {
        $("#contactname").val('Name');
        $("#contactemail").val('Email');
        $("#contactmessage").val('Message');
        $("#contactsuccess").html(data);
      }
    });
    event.preventDefault();
  });
});

</script>

目前此代码是直接发布代码,没有经过任何验证。如果还有什么需要了解的,请询问我。如果您知道在通过 Ajax 提交表单之前验证表单的任何其他方法,请提供帮助。 这是表单的html代码

<form name="footercontact" id="footercontact" method="POST" action="">

  <input type="text" id="contactname" name="name" onblur="if(this.value=='')this.value='Name';" onfocus="if(this.value=='Name')this.value='';" value="Name" class="required">

  <input type="text" id="contactemail" name="email" onblur="if(this.value=='')this.value='Email';" onfocus="if(this.value=='Email')this.value='';" value="Email" class="required email">

  <textarea name="message" id="contactmessage" cols="" rows="" onblur="if(this.value=='')this.value='Message';" onfocus="if (this.value=='Message')this.value='';" value="Message" class="required"></textarea>

  <input name="submit" type="button" onclick="jsvalidate()" value="Submit" id="submitsave">

</form>

最佳答案

使用$('#footercontact').valid()返回 bool 值

jQuery(document).ready(function() {
  jQuery("#footercontact").submit(function(event) {
    form = $(this).serialize();
    $(this).validate();
    if (!$(this).valid()) return false;
    $.ajax({
      type: 'post',
      url: '<?php echo base_url();?>index.php/welcome/test',
      data: form,
      dataType: 'html',
      success: function(data) {
        $("#contactname").val('Name');
        $("#contactemail").val('Email');
        $("#contactmessage").val('Message');
        $("#contactsuccess").html(data);
      }
    });
    event.preventDefault();

  });
});

关于jquery - 在通过ajax提交之前使用jquery验证来验证表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37676740/

相关文章:

jquery - 上下滚动时的CSS动画

jquery - 当我将鼠标悬停到表格行时,如何在 div 中显示表格中的图像?

javascript - 在 xmlHttpRequest 提交中暂停 10 秒

javascript - 我想使用 ajax 和 PHP 获取每个帖子数据的喜欢总数

javascript - 如何创建两列 HTML 表单

forms - 您在连接字符串中指定了密码,但您使用的 native SQLite 库不支持加密

javascript - 如何从提到的字符串中获取逗号分隔的值

javascript - 在 nouislider 上突出显示点数/刻度

javascript - 如何计算总时数?

forms - 如何按照实体之间的多对多关系将默认值设置为连接用户之后的 symfony 表单字段(用户字段)