3

jQueryでは、ブートストラップフォームでjqBootstrapValidationプラグインを使用して$ .ajaxメソッドを使用していますが、検証が正しく機能していません。使ってます

$('#updatenamebutton').click(function(event)
{
   event.preventDefault();
}

preventDefault検証が機能しなくなりますが、実際に値を送信したくないので、を使用していevent.preventDefault();ます。何か案は?

4

2 に答える 2

10

ajax関数をjqBootstrapValidationsubmitSuccessコールバックに入れる必要があります。

jqBootstrapValidationが送信イベントを処理するため、フォームで「送信」や「クリック」などのトリガーをバインドする必要はありません。

次のコードは自明です。

$(function() {

  $('form[name="contact"]').find('input,select,textarea').not('[type=submit]').jqBootstrapValidation({

    submitSuccess: function ($form, event) {

      $.ajax({
        type: 'POST',
        url: $form.attr('action'),
        data: $form.serialize(),
        success: function(data)
        { 
          // just to confirm ajax submission
          console.log('submitted successfully!');
        }
      });

      // will not trigger the default submission in favor of the ajax function
      event.preventDefault();
    }

  });

});

プラグインの詳細については、http: //reactiveraven.github.io/jqBootstrapValidation/をご覧ください。

于 2013-04-14T17:10:44.397 に答える
1

次のようなことをする必要があります。

$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation({

    preventSubmit: false,
     submitSuccess: function (form, event) {
         event.preventDefault();
         dosubmit(form);
     },
     submitError: function (form, event, errors) {
         event.preventDefault();
         }
    }); } );
于 2013-03-30T07:48:35.993 に答える