2011-10-28 133 views
0

我不知道我是否只是在想這個或什麼太辛苦。我只想根據通話結果選擇特定的選項。目前通話根據郵政編碼生成城市,州,國家。來自GET的響應是「Sacramento | CA | United States」我可以很容易地將響應放入輸入框,但我無法弄清楚如何根據響應選擇選項。這可能嗎?我一直在瀏覽一些方法屬性,並且我沒有看到任何可以使用的東西。選擇一個基於req.responseText的選項

以下是Get腳本。

<script type="text/javascript"> 
var req; 
var oldData; 
var doesNotSupport = true; 

function getAddress(url, number) 
{ 
if (number == "" || oldData == number || !doesNotSupport) 
    return; 

oldData = number; 
document.getElementById('city').value = "Searching ..."; 
document.getElementById('state').value = "Searching ..."; 
document.getElementById('country').value = "Searching ..."; 

if (window.XMLHttpRequest) { 
    req = new XMLHttpRequest; 
} else if (window.ActiveXObject) { 
    req = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

if (req) { 
    req.onreadystatechange = processReqChange; 
    req.open("GET", url + '?number=' + number + '&zip=' + number, true); 
    req.send(null); 
    } else { 
    alert("Your browser does not support XMLHttpRequest technology!"); 
    doesNotSupport = false; 
    } 
} 
</script> 

這裏是處理腳本

<script type="text/javascript"> 
function processReqChange() { 
// only if req shows "loaded" 
if (req.readyState == 4) { 
// only if "OK" 
if (req.status == 200) { 
    var Result = req.responseText.split("|"); 
document.getElementById('city').value = Result[0]; 
document.getElementById('state').value = Result[1]; 
     This is the problem child. 
    document.getElementById('country').value = Result[2]; 
} else { 
    alert("There was a problem retrieving the XML data:\n" + req.statusText); 
    } 
    } 
} 
</script> 

選項設置
<option name="(abbr.)" value="(full name)">Full Name</option>

<option name="CA" value="California">California</option>

我只是在尋找的東西來取代.value的財產。像document.getElementById('state').childNode.attribute.name = Result[1]之類的東西。
這裏是一個完整的網頁文件http://ge.tt/99dJ1J9?c

+0

它有助於有縮寫。作爲選項中的一個值?您正在回覆中發送縮寫。 – JoshuaBoshi

+0

我很笨。這工作完美。謝謝喬希。 –

+0

沒問題:-)我發佈了常規答案。 – JoshuaBoshi

回答

0

的問題是,你沒有縮寫爲選項值中的狀態,並且響應包含縮寫。

此外,我會建議你一些JavaScript框架。這對於Ajax,表單驗證等常用功能非常有用。

只是谷歌的JavaScript框架,並找到一個最適合您的需求:-)

0

使用此功能在你的SELECT對象設置的值(下面的代碼是市)鏈接:

var selObject = document.getElementById('city_select_id');  
selObject.value = document.getElementById('city').value; //value received in the response 
+0

我遇到的問題不是這個城市。當我做。價值沒有改變。它只停留在「選擇狀態...」 –

+0

狀態選擇應該類似。只要確保從服務器收到的狀態值與其中一個選項的值相匹配即可 – sarghir

相關問題