2013-02-12 144 views
3

我被這個問題困住了,我真的不知道爲什麼它不起作用。引導彈出窗口內的Ajax

如果我在引導程序的彈出窗口中使用此代碼,它可以工作,但只要我在popover內使用它,它就不再工作。我的意思是,如果表單是從彈出窗口提交的,它就像一個正常窗體一樣,收取新的頁面而不是像AJAX腳本那樣操作。

  $("#share-popover").submit(function(){ 
       //get the url for the form 
       var url=$("#form_search").attr("action"); 
       alert($("#search-value").val()); 

       //start send the post request 
       $.post(url,{ 
        formName:$("#search-value").val(), 
        other:"attributes" 
       },function(data){ 
        if(data.responseCode==200){   
         $('#output').html(data.greeting); 
         $('#output').css("color","red"); 
        } 
        else if(data.responseCode==400){ //bad request 
         $('#output').html(data.greeting); 
         $('#output').css("color","red"); 
        } 
        else{ 
         alert("An unexpeded error occured."); 
        } 
       }); 
       return false; 
      }); 

按鈕:

<button id="share-dropdown" style="margin-right:5px" class="btn btn-warning pull-right" type="button" rel="popover" data-placement="bottom" data-html="true"><i class="icon icon-plus icon-white"></i> Share</button> 

JS:

 $('#share-dropdown').popover({ 
      html : true, 
      content: function() { 
       return $("#share-popover").html(); 
      } 
     }); 

的HTML內容:

<div id="share-popover" style="display: none"> 
    <form id="form_search" action="{{ path('weezbook_site_ajax_search') }}" method="POST"> 
    <input id="search-value" type="text" value="Book title, authors, isbn" class="share-input" name="search-value" /> 
    <input type="submit" /> 
    </form> 

我用這與Symfony2的和我的控制器返回JSON。

我真的不明白爲什麼它的工作盒子的外面,而不是內部...

回答

0

編輯:

我沒有嘗試,但$(document).on('submit', '#share-popover', function() {});更換.submit()應該工作,由於DOM被渲染後的內容加載,我不能」這時使用.submit()。


我不知道爲什麼,但用另一個替換.submit()方法解決了這個問題。

這裏是我做了改變:

<input id="search-value" type="text" placeholder="Book title, authors, isbn" class="share-input" name="search-value" onkeypress="return runScript(event)" /> 


function runScript(e) { 
    if (e.keyCode == 13) { 
    ... 
    return false; 
    } 
} 
0

你與json工作,你有你的post指定它這樣

$.post(url,{ data: something },function(data){some process}, 

'json');// define the type as json 
+1

沒有解決我的問題,但對於試圖感謝:) – BaNz 2013-02-15 09:50:41