1

我正在使用表单验证插件以及 html5 属性=recquired 输入类型=按钮或提交和fancybox。单击按钮时,两个验证程序都有效(出现空输入通知),但不是此通知,而是提交表单。

如果我不使用 button.click 功能而是使用简单的 submit.then 验证工作完美

插件==http://validatious.org/

javascript函数

   $(document).ready(function() {

    $('#send').click(function() {

    $(this).attr("value", 'Applying...');


    var id = getParam('ID');
    $.ajax({
        type:'POST',
        url:"send.php",



        data:{option:'catapply', tittle:$('#tittle').val(), aud:aud, con:con, adv:adv, mid:$('#mid').val(), aud2:aud, cid:$('#cid').val(), scid:$('#scname option[selected="saa"]').val(), gtt:$('input[name=gt]:radio:checked').val(), sr:$(":input").serialize() + '&aud=' + aud},

        success:function(jd) {
            $('#' + id).fadeOut("fast", function() {
                $(this).before("<strong>Success! Your form has been submitted, thanks :)</strong>");
                setTimeout("$.fancybox.close()", 1000);
            });
        }
    });
  });
 });

和 HTML 在这里

      <form id="form2" class="validate" style="display: none" >

        <input  type='button'  value='Apply' id="send" class="sendaf validate_any"                              name="jobforming"/>
     </form>
4

2 回答 2

1

要么有一个 type="button" 而不是 type="submit" 或者我非常喜欢,在表单提交而不是点击时运行。preventDefault(或在函数末尾返回 false)将停止正常的表单提交,除非代码中存在语法错误!例如什么是 aud 和 con?

尝试

$(document).ready(function() {

  $("#form2").on("submit",function(e) {
    e.preventDefault(); // stop normal submission

    $('#send').attr("value", 'Applying...');

    var id = getParam('ID');
    $.ajax({
      type:'POST',
      url:"send.php",
      data:{option:'catapply', tittle:$('#tittle').val(), aud:aud, con:con, adv:adv, mid:$('#mid').val(), aud2:aud, cid:$('#cid').val(), scid:$('#scname option[selected="saa"]').val(), gtt:$('input[name=gt]:radio:checked').val(), sr:$(":input").serialize() + '&aud=' + aud},

      success:function(jd) {
        $('#' + id).fadeOut("fast", function() {
          $(this).before("<strong>Success! Your form has been submitted, thanks :)</strong>");
          setTimeout("$.fancybox.close()", 1000);
        });
      }
    });
  });
});
于 2012-11-20T11:00:16.723 回答
0

此解决方案可能适用于您的验证插件。在我看来,即使mplungjan的答案在大多数情况下是一个更好的解决方案(监听提交事件而不是监听提交按钮单击)。

$(document).ready(function() {
    $('#send').click(function(e) {

       e.preventDefault();

       $(this).attr("value", 'Applying...');

       var id = getParam('ID');

       $.ajax({
           type:'POST',
           url:"send.php",
           data:{option:'catapply', tittle:$('#tittle').val(), aud:aud, con:con, adv:adv, mid:$('#mid').val(), aud2:aud, cid:$('#cid').val(), scid:$('#scname option[selected="saa"]').val(), gtt:$('input[name=gt]:radio:checked').val(), sr:$(":input").serialize() + '&aud=' + aud},
           success:function(jd) {
               $('#' + id).fadeOut("fast", function() {
                   $(this).before("<strong>Success! Your form has been submitted, thanks :)</strong>");
                   setTimeout("$.fancybox.close()", 1000);
               });
           }
        });
    });
});
于 2012-11-20T11:15:04.887 回答