2013-01-11 48 views
0

我有一个链接类触发每次点击一个引导模式。AJAX没有点击后点击是关闭引导模态

 <a class="ptdel" href="#myModalx" role="link" data-toggle="modal" id="668" title='Delete'>x</a> 
    <script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     $(".ptdel").click(function(){ 

      var pcid = $(this).attr('id'); 
      if(pcid >= 40){ 
       $("#myModalxLabel").html("Delete?"); //adds to modal display text 
      } 

      $("#modalButtonxy").addClass("del_"+pcid); //adds class to yes button 

     }); 
    }); 
    </script> 

随着href =“#myModalx”模式弹出点击的链接。这已经配置了Bootstrap。

这是我的模态的html代码...

<pre> 
    my modal id="myModalx" 
    my modal header id="modalHeadx" 

    my Yes button id="modalButtonxy" data-dismiss="modal" aria-hidden="true" class="" onclick="yesDel(this);" 

    my No button id="modalButtonxn" data-dismiss="modal" aria-hidden="true" 

    </pre> 

在我的DOM准备的代码,我添加一个类是按钮,这样我可以得到该链接的id点击。

它正确地调用了下面的JavaScript函数......警报正在发射......但问题是它只是不会触发ajax。我没有登录控制台。我使用Yii作为我的php框架......并且这里的url代码在我的其他ajax调用中起作用。

function yesDel(thecl){ 
// alert("works");  


      var modalclass = thecl.attr('class'); 
      var pid = modalclass.split("_").pop(); 
      //should return true or false back from request 
      $.ajax({ 
       url: '<?php echo CController::createUrl('/link/deletenow'); ?>', 
       type: "POST", 
       data: {linkid:pid,YII_CSRF_TOKEN: '<?php echo Yii::app()->request->csrfToken ?>'}, 
       dataType: 'text', 
       success: function(data){ 
         if(!!data){ 

         $("#flashmid").show();   
         $("#flashmid").fadeIn(400).html('Delete Successful!'); 
         $("#flashmid").fadeOut(400); 
         } 
       }, 
       error: function(xhr, textStatus, error){ 
        console.log(xhr.statusText); 
        console.log(textStatus); 
        console.log(error); 
        alert("error in deleting"); 
       } 
      }); 
    } 

请帮我解决各种问题。该职位实际上工作时,我把它定期检查数据库的变化......但我需要这个工作点击后,用户选择是删除。

+0

是否发出AJAX请求?或者''.ajax()'中的任何代码都没有运行?换句话说,如果您使用Firebug或类似软件,您是否看到链接/删除/正在创建的请求?另外,由于您使用的是$ .ajax简写,所以jQuery在yesDel函数的范围内可用吗? – ernie

+0

@ernie没有请求是根本没有被做。 $ .ajax()代码没有运行。是的,我一起使用Firebug并且使用FirePHP,并且我没有收到任何请求,并且我已经登记了控制台代码。是的,jQuery在yesDel函数的范围内可用。我也尝试将所有内容都放在DOM ready函数中,并使用.click()函数和其中的$ .ajax()按钮,但仍然没有提出请求。 –

+0

它现在起作用我改变了thecl.attr('class');到$(thecl).attr('class');显然这是阻止流量。感谢你的帮助! –

回答

0

我知道这是一个古老的问题。 但我的问题是一样的。

也许我们的问题是按钮中的数据忽略。 我认为这可能会减轻你表单中的所有数据,但我不太确定。

至于我这个解决方案工作:

我有一个jQuery功能墙根模态的onclick,和一切工作正常。

$('#newBuildingSubmit').click(function(){ 

           $('#newBuildingModal').modal('hide'); 

           // AJAX CODE HERE 

          }); 

我的按钮看起来像这样:

<button type="submit" id="newBuildingSubmit" class="btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Speichern</button> 

我的按钮被包裹一个模式里面。

迟到的答案,但可以帮助其他人面临同样的问题:)。