当我在jquery中按下按钮时模拟模态调用

时间:2016-04-21 11:35:24

标签: javascript jquery ajax codeigniter bootstrap-modal

我在我的项目中使用Codeigniter和Bootstrap,我有一个调用Modal的按钮,在调用Modal之前我用ajax做了一些测试,所以我从按钮中删除了数据目标,我在ajax成功后添加了测试,my问题是我应该按两次按钮来调用Modal第一次添加attr而第二次调用Modal,我需要使用jquery来模拟点击按钮的动作并在某个时候添加属性data-target而不需要双击。我该如何实现?我可以用jQuery实现吗?

这是我的代码:

<button type="button" class="btn btn-warning" id="ppp" data-toggle="modal"  data-ms="1"  data-idpt="<?php echo $idPatient ?>" data-nbrsc="<?php echo $nbrSc; ?>" data-tarifsc="<?php echo $tarifSc; ?>" >
                   + Réglememt</button>
                   <script type="text/javascript">

                          $(document).ready(function(){
                            $("#ppp").click(function(event){
                              event.preventDefault();
                              var dtab = $("tr.active td:first").html();
                                jQuery.ajax({
                                  type: "POST",
                                  url:"<?php echo base_url() ?>esthetique/ajax_pm",
                                  dataType:'json',
                                  data:{dtab: dtab},

                                  success:function(res){
                                     document.getElementById('dangerlist').innerHTML ='';
                                    if(res.dtab==null){
                                        document.getElementById('dangerlist').innerHTML = "<div class='alert alert-danger' id='error' role='alert'></div>";
                                        $('#error').text('Veuillez selectionner un traitement');
                                    }else{
                                          if(res.paiemsg==1){

                                            document.getElementById('dangerlist').innerHTML = "<div class='alert alert-info' id='error' role='alert'></div>";
                                            $('#error').text('Impossible d\'ajouter paiement : Traitement déja réglée');
                                          }else{
                                              $("#ppp").attr("data-target","#addpm");
                                              $('#ppp').click();
                                          }

                                    }

                                  }  
                                });
                            });
                        });
               </script>

1 个答案:

答案 0 :(得分:0)

不使用添加属性和触发第二次单击,只需使用Bootstrap方法modal()

  $("#ppp").click(function (event) {
  event.preventDefault();
  jQuery.ajax({
    type: "POST",
    url: "<?php echo base_url() ?>esthetique/ajax_pm",
    dataType: 'json',
    data: {dtab: $("tr.active td:first").html()},
    success: function (res) {
      document.getElementById('dangerlist').innerHTML = "<div class='alert alert-danger' id='error' role='alert'></div>";

      if (res.dtab == null) {
        $('#error').text('Veuillez selectionner un traitement');
        return;
      }

      if (res.paiemsg == 1) {
        $('#error').text('Impossible d\'ajouter paiement : Traitement déja réglée');
        return;
      }

      document.getElementById('dangerlist').innerHTML = '';
      // $("#ppp").attr("data-target", "#addpm");
      $("#myModal").modal()
    }

  });
});

Moins de lignes de code est mieux,non?