Помогите разобраться
Здравствуйте!
Написал Ajax приложение для поиска улиц. _http://test.***.ru/streets.html До вывода списка найденных улиц функция past_street(); работает успешно (заменяет значение в поле формы), но после того как появляется <select> при нажатии на "вставить" или на значение в выпадающем списке ничего не происходит. В чём может быть проблема? |
Во-первых, как сделать, чтоб появился select?
Во-вторых, лучше работайте с DOM методами, а не получением элементов из свойств объектов:
function past_street(street) {
document.getElementsByName('street')[0].value=street;
}
var request = null;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
if (request == null)
alert("Error creating request object!");
}
function send() {
createRequest();
street = document.getElementsByName('street')[0].value;
if(street.length > 3) {
var url = "streets.php?street=" + street;
request.open("GET", url, true);
request.onreadystatechange = update;
request.send(null);
}
}
function update() {
if(request.readyState == 4) {
if(request.status == 200) {
var response_div = document.getElementById("response");
response_div.innerHTML = request.responseText;
} else alert("Error! Request status is " + request.status);
}
}
|
Спасибо большое, помогло!
function past_street(street) {
document.getElementsByName('street')[0].value=street;
}
Select генерируется с помощью PHP. |
telepat mode: возможно, после добавления чего-либо в dom нужно повторно назначить обработчик
|
Цитата:
|
В IE вообще ничего не работает, вот пример _http://www.italii.ru/catalogue/
При вводе слова в форму например "max" появляются подсказки, всё работает в Opere и Firefox, но в IE нет. Что только не делал. В чём проблема?
function past_result(search) {
if(navigator.appName == "Microsoft Internet Explorer") {
document.forms['search_form'].elements['search'].value = search;
} else if(navigator.appName == "Opera") {
document.forms['search_form'].elements['search'].value = search;
} else if(navigator.appName == "Netscape") {
document.getElementsByName('search')[0].value=search;
} else {
document.forms['search_form'].elements['search'].value = search;
}
var response_div = document.getElementById("response");
response_div.innerHTML = '';
}
var request = null;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
if (request == null)
alert("Error creating request object!");
}
function send() {
createRequest();
//search = document.forms[0].search.value;
search = document.forms['search_form'].elements['search'].value;
if(search.length > 1) {
if(navigator.appName == "Microsoft Internet Explorer") {
var url = "http://www.italii.ru/xajax/ajax_search.php?iconv&search=" + search;
} else if(navigator.appName == "Opera") {
var url = "http://www.italii.ru/xajax/ajax_search.php?iconv&search=" + search;
} else if(navigator.appName == "Netscape") {
var url = "http://www.italii.ru/xajax/ajax_search.php?search=" + search;
} else {
var url = "http://www.italii.ru/xajax/ajax_search.php?iconv&search=" + search;
}
request.open("GET", url, true);
request.onreadystatechange = update;
request.send(null);
} else {
var response_div = document.getElementById("response");
response_div.innerHTML = '';
}
}
function update() {
if(request.readyState == 4) {
if(request.status == 200) {
var response_div = document.getElementById("response");
response_div.innerHTML = request.responseText;
} else alert("Error! Request status is " + request.status);
}
}
Пришлось даже с navigator.appName извратиться. |
ошибки какие-то выдаются в ie?
не надо тут с navigator.appName извращаться: используй utf-8 |
Я то с радостью использовать utf-8, но клиенту не докажешь.
По поводу IE Строка: 40 Ошибка: Объект не поддерживает это свойство или метод. |
а клиент такие умные слова знает O_o может попробовать сменить клиента? ;)
какая строка 40-ая? Лучше включи отладчик и посмотри, на какой строке он остановился |
Цитата:
|
| Часовой пояс GMT +3, время: 06:26. |