Twitter bootstrap 用于登录的引导模式弹出窗口

Twitter bootstrap 用于登录的引导模式弹出窗口,twitter-bootstrap,Twitter Bootstrap,我正在使用引导模式弹出窗口登录,我需要知道如何在同一弹出窗口上显示错误消息,该弹出窗口来自MVC5中的控制器操作 请提供任何建议。在提交前对modal进行JavaScript验证,如果验证失败,请禁用提交 更新: 由于没有代码可以使用,我将把逻辑留给您 验证 Showmodal如果验证失败,请使用razor在viewbag中设置一个变量以再次显示模式(我认为这不是最佳做法) 我建议您使用URL结构来显示该模式。 这里有一个问题正好解决了这个问题:。检查已接受的答案。(归功于原作者) 基本上,您

我正在使用引导模式弹出窗口登录,我需要知道如何在同一弹出窗口上显示错误消息,该弹出窗口来自MVC5中的控制器操作


请提供任何建议。

在提交前对modal进行JavaScript验证,如果验证失败,请禁用提交

更新: 由于没有代码可以使用,我将把逻辑留给您

  • 验证
  • Showmodal如果验证失败,请使用razor在viewbag中设置一个变量以再次显示模式(我认为这不是最佳做法)


  • 我建议您使用URL结构来显示该模式。 这里有一个问题正好解决了这个问题:。检查已接受的答案。(归功于原作者)

    基本上,您需要添加javascript来检查URL的最后一部分,如下所示:

    <script type="text/javascript">
    var url = window.location.href;
    if(url.indexOf('?error=123') != -1 || url.IndexOf('/error123') != -1) {
        $('#myModal').modal('show');
    }
    </script>
    
    
    var url=window.location.href;
    如果(url.indexOf('?error=123')!=-1 | | url.indexOf('/error123')!=-1){
    $('myModal').modal('show');
    }
    
    然后,您可以将模型错误响应路由到login/error123,在HTML页面上定义空的模态div

    脚本,单击按钮发送请求,从服务器获取数据并以模式显示。


    你只需要在js中写一行

    toastr.success('YOUR MESSAGE');
    

    需要更改标题我无法使用JS执行此操作,因为逻辑和对DB的调用处于控制器操作中..需要在验证后返回到模式..请提供任何示例。。谢谢因此,验证是在action方法中进行的。这似乎不对。如果模态的行为类似于表单,则将其设置为表单或使用ajax请求进行验证。我将用一个基本示例更新我的答案我必须使用控制器操作,因为我需要访问数据库来检查电子邮件/密码的有效性,而不仅仅是语法验证…谢谢!是的,我正在使用MODA内部表单验证后,模式在窗口中显示错误,但登录按钮不起作用。对于不同类型的消息,您可以保持危险或其他状态,而不是成功
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class='modal-oem-error''>
    
    <button type="button" class="btn btn-primary" id='element'>Show Modal Data On Ajax</button>
    
    def login
       # login code
        status ? (render :partial=>'after_login_template') : (render :json=>{status:'false' , value_data: @instance.errors.full_messages.join('|')})
      end
    
    $('#element').on('click', function () {
      $j.ajax({
       url: '/localhost/resource',
       type: "POST",
       data: {id:123}
       }).done(function (data) {
          if (data.status == 'false') {
              $j('.modal-oem-error').show();
               array = data.value_data.split('|')
                             $j.each(array, function (i) {
                                 $j('.modal-oem-error').append('<p>' + array[i] + '</p>')
                             });
                           } else {
                            $j('#myModal').modal('hide')
                            $j('#list).html(data)
                            $j('.modal-oem-error').html('');
                            $j('body').removeClass('modal-open');
                        }
                    });
    });
    
    $('#myModal').on('hidden.bs.modal', function (e) {
     $('#myModal').html('');
    })
    
    toastr.success('YOUR MESSAGE');