2010-01-30 55 views
1

好的,在我的html/js中,我有一個基於用戶以前的選擇進行更新的表單。在最後一個階段,我有一個選擇菜單,用戶將選擇他們的城市。我已將所選項目的值存儲在我的選項列表中,其ID爲#myCity以下。JQuery - 訪問一個函數中的VAR,我將需要在另一個函數中?

('#myCity').change(function(){ 
    var CityValue = $("#myCity").val(); 
}); 

一旦這個值設置,我的形式然後顯示提交按鈕

<input type="submit" id="go" value="Submit" onclick="getweather()" /> 

這是我開始有一點麻煩的。在我的getweather()函數中,我希望能夠從上面獲取var CityValue並將其附加到另一個var,以便可以加載特定頁面。

function getweather(){ 
        var CityValue; 
        var to_load = 'getweather.php?p='+ CityValue +'.html'; 

        $('#weather').empty().append(to_load); 


       } 

但在我的測試中,我不認爲我的getweather()函數能夠讀取我想要的var。任何人都可以提出解決方案

回答

0

僅在不能從外部訪問的功能範圍內聲明CityValue。無論是全球範圍內聲明的變量:

var CityValue; 
$('#myCity').change(function(){ 
    CityValue = $("#myCity").val(); 
}); 
function getweather() { 
    var to_load = 'getweather.php?p='+ encodeURIComponent(CityValue) +'.html'; 
    $('#weather').empty().append(to_load); 
} 

或者只是叫$("#myCity").val()getweather功能:

function getweather() { 
    var to_load = 'getweather.php?p='+ encodeURIComponent($("#myCity").val()) +'.html'; 
    $('#weather').empty().append(to_load); 
} 
+0

如果你建議我把的GetWeather()功能?我的問題演示可以在這裏找到http://chrismj.com/ – ChrisMJ 2010-01-30 11:29:06

2

好了,你指定的第一個函數(的onchange事件處理程序)不現在做什麼。你可以將其刪除和編輯的第二個功能是這樣的:

function getweather(){ 
    var CityValue = $("#myCity").val(); 

    var to_load = 'getweather.php?p='+ CityValue +'.html'; 

    $('#weather').empty().append(to_load); 
} 
+0

你在哪裏建議我把getweather()函數?我的問題的演示可以在這裏找到http://chrismj.com – ChrisMJ 2010-01-30 11:29:42

0

好了,你指定的第一個函數(的onchange事件處理程序)不會做任何事情,現在。您可以刪除它並編輯第二個函數,如下所示:

然後,您可以將此函數調用添加到change事件中。

function getweather(){ 
    var CityValue = $("#myCity").val(); 

    var to_load = 'getweather.php?p='+ CityValue +'.html'; 

    $('#weather').empty().append(to_load); 
} 

$('#myCity').change(getweather); 
0

這個問題的更優雅的答案是使用jQuery data API。這允許您在對象中存儲任意數據,而不是聲明變量,將所有內容保存在一個很好的OOP方式中。所以,你想將意味着存儲的價值,像這樣的內容:

$('#myCity').change(function(){ 
    $("#myCity").data("CityValue", $("#myCity").val()); 
}); 

這樣你就可以檢索它像這樣:

function getweather(){ 
    var to_load = 'getweather.php?p='+ $("#myCity").data("CityValue") +'.html'; 
    $('#weather').empty().append(to_load); 
} 
相關問題