1

フォーム検証プラグインとhtml5属性=入力type=buttonまたはsubmitとfancyboxで取得を使用しています。ボタンをクリックすると、両方の検証手順が機能します(空の入力の通知が表示されます)が、この通知の代わりにフォームが送信されます。

button.click関数を使用せず、単純な送信を使用する場合、検証は完全に機能します

プラグイン==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="submit"ではなくtype="button"を使用するか、私が非常に好むものを使用して、クリックではなくフォーム送信で実行します。コードに構文エラーがない限り、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 に答える