2010-03-16 31 views
1

對於JQuery和MVC以及所有Web開發都很新穎。 我現在試圖做到這一點,並要求提供一些建議:使用參數在JQuery中建立鏈接的最佳方法

我基本上試圖建立一個4輸入元素和1輸出的過濾器。

我有4個選擇(下拉)元素在我的頁面。只要其中一個被更改,我需要建立一個href並獲得帶有返回值的局部視圖。

我的問題是現在如果我應該嘗試在select元素中構建href,或者如果我可以在jquery中執行一次,並且不必重複代碼。我怎麼做到這一點?

+0

你能提供一個輸入輸出的例子嗎?我們不能在腦海中想象你在屏幕上有什麼東西..它肯定會讓你的問題得到解答 – ant 2010-03-16 15:21:01

+0

對,對不起!我甚至沒有時間更新,直到我實際上得到了很好的答案。下次我會提供更多的內容。 – MrW 2010-03-16 15:31:15

回答

1

每個下拉應該class="FilterSelect"或類似的

東西時,它們中的任何改變,它會激發關閉到需要在提供給所有選擇的上下文中指定的URL的請求。

以下僞代碼應該給一個想法:

$('.FilterSelect').change(function() 
{ 
    var data = {} // you need to get the selected items of each dropdown somehow 
    $.get($(this).parents('#FilterContainer').attr('href'), data, function(response) 
    { 
     $('#ContentArea').html(response); 
    } 
}); 

只是要注意:你不應該在jQuery中建立自己的網址,因爲客戶端的邏輯不應與建設所需要的規則被關注一個對應於服務器端路由的URL。

.... &還要注意:我不知道這是否是有效的jQuery! .parents('#FilterContainer')

+1

這是有效的,但$ .get($('#FilterContainer')...會讓你更快。 – ajm 2010-03-16 16:56:21

+0

@ajm - 非常好的一點。以上是當你打字速度比你快思維! – DaveDev 2010-03-16 17:16:21

1

你當然可以在jQuery中以你想要的模塊化方式做一次。喜歡的東西:

$('select').bind('change',function(e){ 
    // Our select changed. Send it's selected option's value onwards... 
    getView(this.options[this.selectedIndex].value); 
}); 

然後,別的地方:

function getView(url){ 
    $.ajax(url : '/your/url/' + url, success : function(){ }, error : function(){ }); 
} 

基本上,URL件作爲存儲在您的下拉菜單中的選項值。觀察更改事件並啓動相應的請求。你可以根據需要將其設爲模塊化(我會將URL存儲爲一個常量,將整個模塊存儲爲模塊等),但這是一個很好的起點。

+0

感謝您的提示! :)真的很感謝答案! :) – MrW 2010-03-16 15:52:31

相關問題