Выберите опцию на основе req.responseText - PullRequest
0 голосов
/ 28 октября 2011

Я не знаю, слишком ли сильно я думаю об этом или о чем.Я просто хочу иметь возможность выбрать конкретную опцию на основе результата, который я получаю от звонка.В настоящее время вызов производит город, штат, страну на основе почтового индекса.Ответ от GET - «Sacramento | CA | United States». Я могу легко поместить ответы в поля ввода, но не могу понять, как выбрать опцию на основе ответа.Это возможно?Я просматривал некоторые свойства метода и не вижу ничего, что я мог бы использовать.

Вот скрипт 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>

Вот скрипт Response

<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 голосов
/ 29 октября 2011

Проблема в том, что у вас нет сокращения для состояния в значении параметра, а в ответе содержится сокращение.

Кроме того, я бы порекомендовал вам некоторые рамки JavaScript. Это очень помогло бы вам с такими обычными задачами, как Ajax, проверка формы и так далее.

Просто gavascript Framework и найдите тот, который наилучшим образом соответствует вашим потребностям: -)

0 голосов
/ 28 октября 2011

Используйте это, чтобы установить значение в вашем объекте SELECT (ниже код города):

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