2010-05-02 186 views
1

我在頁面上有幾個'select'元素。當我選擇一些選項時,ajax請求將被髮送到服務器,並且與此「選擇」相鄰的元素必須用響應值進行更新。我希望下面的代碼是工作:jQuery成功:功能{}問題

$(".vars").live("change", function() { //selected something in <select> list 
    $.ajax({ 
     type: "POST", 
     url "someurl.php", 
     data: {somedata}, 
     success: function(html) { 
      $this.next().html(html); //this does not update .next() element. 
     } 
    }); 
}); 

如果我更換

$(this).next().html(html); 

alert(html); 

我可以看到Ajax請求成功。此外,只有在頁面上只有一個「選擇」時才起作用,否則會出現空的彈出窗口。

+0

爲了迴應您的評論,要獲得/設置選擇框的選定選項,請使用.val()而不是.html()。希望對你有所幫助 – BradBrening 2010-05-02 16:11:38

回答

1

我認爲,「這」是不是你認爲它是同時在回調引用。試試這個:

$(".vars").live("change", function() { //selected something in <select> list 
    var $driver = $(this); 
    $.ajax({ 
     type: "POST", 
     url "someurl.php", 
     data: {somedata}, 
     success: function(html) { 
      $driver.next().html(html); //this does not update .next() element. 
     } 
    }); 
}); 
+0

謝謝你們,但是如果有幾個'select'元素,那麼'html'的迴應就會變成空白。無論如何,現在我們更接近解決方案,因爲最終正確的元素被觸發。 – ufw 2010-05-02 16:09:08

+0

但它看起來像服務器端代碼中的一些錯誤,所以這個問題必須標記爲「已回答」。 – ufw 2010-05-02 16:19:49

1
$(".vars").live("change", function() { //selected something in <select> list 
    var $this = $(this); 
    $.ajax({ 
     type: "POST", 
     url "someurl.php", 
     data: {somedata}, 
     success: function(html) { 
      $this.next().html(html); //this does not update .next() element. 
     } 
    }); 
});