Помогите разобраться
Здравствуйте!
Написал 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, время: 07:23. |