2016-07-28 56 views
0

我有一些選擇字段,例如我的數據表的供應商ID和狀態。當這些字段發生變化時,我想將這些參數包含在鏈接中(鏈接調用將數據導出到csv的服務器函數)。我對jquery/coffeescript的使用經驗非常有限,而且我無法正常工作。我到目前爲止是:如何添加/刪除參數鏈接到jquery

$ -> 
    $('#vendor-id').on 'change', -> 
    $('#shipments-table').DataTable().ajax.reload() 
    $('a.download-link').attr 'href', (index, href) -> 
     param = 'vendor-id='+$('#vendor-id').val(); 
     if href.charAt(href.length - 1) == '?' 
     href + param 
     else if href.indexOf('?') > 0 
     if href.indexOf(param) == 0 
      href + '&' + param 
     else 
     href + '?' + param 
    return 

我有兩個問題與我的代碼。一個是由於某種原因,當我改變該值時,該參數被添加到鏈接兩次(例如:http://link.com?vendor-id=1&vendor-id=1

第二個問題是,當我爲這個選擇框選擇不同的值時,以前的值是不從鏈接中刪除,但添加到它。

我該如何解決這個問題?

回答

1

你可以在這裏找到一些答案:Change URL parameters。例如:https://stackoverflow.com/a/10997390/4335261 - 它爲我工作。只需複製updateURLParameter函數並以此方式使用它:

$ -> 
    $('#vendor-id').on 'change', -> 
    $('#shipments-table').DataTable().ajax.reload() 
    $('a.download-link').attr 'href', (index, href) -> 
    updateURLParameter(href, 'vandor-id', $('#vendor-id').val()) 
+0

這不適用於我。 (我修正了'vandor-id'錯字)。鏈接不會改變。參數是否需要存在才能更改?它在默認情況下不存在,但在值設置後添加 – stoerebink

+0

Woops。閱讀鏈接後,我收錄了該功能,並且它的工作完美。隊友的歡呼聲!!!! – stoerebink