根据req.responseText选择一个选项

时间:2011-10-28 16:28:56

标签: javascript ajax xmlhttprequest responsetext

我不知道我是否只是在想这个或者什么。我只是希望能够根据我从通话中得到的结果选择一个特定的选项。目前,呼叫根据邮政编码生成城市,州,国家。 GET的响应是“萨克拉门托| CA |美国”我可以轻松地将响应放入输入框,但我无法弄清楚如何根据响应选择一个选项。这可能吗?我一直在寻找一些方法属性,我真的没有看到任何我可以使用的东西。

这是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

的链接

2 个答案:

答案 0 :(得分:0)

使用此选项设置SELECT对象中的值(以下代码用于城市):

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

答案 1 :(得分:0)

问题是您没有选项值中的状态的缩写,并且响应包含缩写。

另外,我会推荐一些javascript框架。它可以帮助您解决Ajax,表单验证等常见问题。

只需google javascript框架,找到最适合您需求的框架: - )