Jquery 如何从引导验证js文件中显示确认模式?

Jquery 如何从引导验证js文件中显示确认模式?,jquery,twitter-bootstrap,modal-dialog,jquery-validate,Jquery,Twitter Bootstrap,Modal Dialog,Jquery Validate,我在这里过得很艰难。让我解释一下 我有一个表单和一个js验证。如果验证正常,则会出现一个确认模式,向数据库提交(或不提交)一些信息: <div class="row-fluid"> <div class="span12"> <!-- BEGIN VALIDATION STATES--> <div class="portlet box green"> <div class="portlet-title">

我在这里过得很艰难。让我解释一下

我有一个表单和一个js验证。如果验证正常,则会出现一个确认模式,向数据库提交(或不提交)一些信息:

<div class="row-fluid">
<div class="span12">
    <!-- BEGIN VALIDATION STATES-->
    <div class="portlet box green">
        <div class="portlet-title">
            <div class="caption"><i class="icon-reorder"></i>Formulario de Carga</div>
        </div>
        <div class="portlet-body form">

            <!-- BEGIN FORM-->
            <form action="{site_url()}admin/testupdate" id="form_sample_2" class="form-horizontal" method="POST">

                <div class="alert alert-error hide">
                    <button class="close" data-dismiss="alert"></button>
                    Existen errores en el formulario. Por favor verifique.
                </div>

                <!-- modal -->
                <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel3" aria-hidden="true">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                        <h3 id="myModalLabel3">Cargar Usuario</h3>
                    </div>
                    <div class="modal-body">
                        <p>Desea dar de alta al nuevo usuario?</p>
                    </div>

                    <div class="modal-footer">
                        <button class="btn" data-dismiss="modal" aria-hidden="true">Cerrar</button>
                        <button data-dismiss="modal" class="confirm btn green" id="btnYes">Confirmar</button>
                    </div>
                </div>                    
                <!-- end modal -->

                <h3 class="form-section">Datos Personales</h3>
                <!-- row 1 -->
                <div class="row-fluid">
                    <div class="span6 ">
                        <div class="control-group">
                            <label class="control-label">Celular<span class="required">*</span></label>
                            <div class="controls">
                                <input type="text" class="m-wrap span8" name="cellphone" value="{$okInfo['cellphone']}" required> 
                            </div>
                        </div>
                    </div>
                    </div>

                    <div class="form-actions">
                        <button type="submit" class="btn green">Validate</button>
                        <button type="button" class="btn">Cancel</button>
                    </div>

                </form>
                <!-- END FORM-->
            </div>
        </div>
        <!-- END VALIDATION STATES-->
    </div>
</div>
从模式中单击确认按钮时,模式将消失,但不会重定向到提交功能

我正在使用Codeigniter、Bootstrap v3.0.0、jQuery 1.10.1、jQuery验证插件、Smarty模板引擎

在chrome和firefox浏览器上检查

我认为问题可能是来自验证文件的提交处理程序。以下是代码片段:

var form2 = $('#form_sample_2');
var error2 = $('.alert-error', form2);
var success2 = $('#myModal', form2);

form2.validate({
  errorElement: 'span', 
  errorClass: 'help-inline', 
  focusInvalid: false, 
  ignore: "",
  rules: {
    cellphone: {
      required: true,
      minlength: 9,
      maxlength: 11,
      digits: true
    }
  },
  //some code
  submitHandler: function (form) {
    success2.modal('show');
    error2.hide();
  }
});
submitHandler函数也不允许我提交表单,因为在检查验证并显示modal后,如果单击modal的“提交”按钮,它将再次执行验证,并且post永远不会到达控制器中的函数


所以我现在的问题是,如何避免第二次验证并提交表单?我现在被烧死了

默认情况下,如果您省略了
类型
,则
按钮
将是
type=“submit”
,并且由于它已经在您的
表单中
,它将像另一个
提交
按钮一样再次触发验证。将其设置为
type=“button”
,您就不需要
preventDefault()

<button type="button" data-dismiss="modal" class="confirm btn green" id="btnYes">Confirmar</button>


否则,由于
#btnYes
已经是一个
submit
按钮,如果您简单地去掉
点击处理程序,您原来的
提交者可能会工作得很好。

与模态相关的所有内容都需要在
提交者
中,而不仅仅是打开模态的那一行。理想情况下,模式会有一个自定义回调函数,单击按钮时会触发该函数。然后
form.submit()
将进入其中。另外,要不忽略任何内容,它是
ignore:[]
,而不是
ignore:“
@Sparky我确实在提交处理程序中构建了一个函数,在该函数中打开模式并发送提交顺序,但它不起作用。如果你给我5分钟,我会用它来编辑我的帖子。关于忽略的事情,我没有碰它,只是从原来的插件来的。我也不知道这是为了什么。我真的是个新手。来自哪个插件?这些都是您配置的选项,验证插件没有为您填写任何选项。@Sparky我没有放“”。真的,非常感谢。我想我已经试过了。。。但正如我所说,我的大脑被烧坏了。现在它工作得很好!
<button type="button" data-dismiss="modal" class="confirm btn green" id="btnYes">Confirmar</button>
submitHandler: function (form) {
    success2.modal('show');
    error2.hide();
    $('#btnYes').on('click', function(){
        form.submit();
    });   
}