验证不适用于jqBootstrapValidation和ajax

时间:2013-03-25 14:35:24

标签: jquery twitter-bootstrap validation

在jQuery中,我在引导程序窗体上使用带有jqBootstrapValidation插件的$ .ajax方法但验证不正常。我正在使用

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

preventDefault正在停止验证,但我不想实际提交值,因此我使用event.preventDefault();。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

您只需将ajax函数放入jqBootstrapValidation submitSuccess回调中。

您不需要在表单上绑定类似“提交”或“单击”的触发器,因为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/

答案 1 :(得分: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();
         }
    }); } );