2017-02-09 96 views
1

根據URL參數的更改,我的html中的值發生更改。所以基本上我將這些值傳遞給json文件。由於頁面正在刷新,因爲我的值正在被擦除。我嘗試了事件防止默認,但它不適合我。如何在沒有頁面刷新的情況下在URL參數更改上發佈ajax

var carryOver ={"Jan":"","Feb":""}; 
var parameters = getParameterByName('month')//gets the current URL parameter 
if(parameters == '01-2017'){ 
    $('#monthQuota').html(janQuota); 
    carryOver["Jan"] = 300; 
} 
else if(parameters == '02-2017'){ 
    carryOver["Feb"] = 400; 
} 
$(function() { 
    $('parameters').on('change', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "utilization-2017-test.php", 
     data: { 
      json: JSON.stringify(monthBalances) 
     } 
     }) 
    }) 
}) 
+0

我們缺少一些細節的輸入。首先關閉$('parameters')。on('change'..)''這是如何被解僱的? 'getParameterByName'會很有趣。那是查詢字符串參數還是哈希參數?請[如何創建一個最小化,完整和可驗證的示例](http://stackoverflow.com/help/mcve) – Nico

+0

$('parameters')'.parameters是哪個屬性'class','id'或' tag'? 'parameters'是一個未定義的 – prasanth

+0

你能告訴我們HTML,所以我們可以看到你的'

'是如何設置的?我們需要看到這個來檢查你的'.on()'jQuery方法,這是在你的'.ajax()'方法之前觸發的。如果您的表單正在重新加載頁面,它聽起來不像'.on()'設置正確。你有沒有嘗試在'.on()'函數範圍內進行控制檯日誌記錄,以確保它正常工作?另外,確保你使用的是正確的jQuery選擇器:http://api.jquery.com/category/selectors/通常只使用單詞,比如'parameters'僅用於元素,不用於類或ids('.foo' ,'#foo')。 – natureminded

回答

0

先生,JavaScript或jQuery的可以檢測#(井)的變化,但不是參數change.If你點擊一個鏈接,#tag改變,那麼腳本或事件將檢測和頁面將不會得到重新加載但要更改您要在瀏覽器Url中輸入內容的參數,請更新您的值。

所以,請做一兩件事,保持一個文本框,並輸入該值,那麼你從文本框中的值,去服務調用,而不是採取從URL

相關問題