Приветствую! Есть форма, и как у каждой уважающей себя формы есть тайп=сабмит на селф, как сделать так, чтобы если у юзверя есть JS, выполнялась Ajax-функция, если JS выключен, она сабмитилась привычным способом? Думаю что если в св-ве onSubmit="" прописать аякс, то юзверь, у которого JS включен, продублирует отправку формы 2мя перечисленными способами, или я ошибаюсь?
На вскидку: Повесить на onSubmit(или на нажатие сабмита) JS функцию, которая реализует отправку AJAX'ом и возвращает false.
Volt(220) Спасибо! Помогло Еще вопрос...=\ Как выудить значение выбранного радио-батона? Нет, выудить как знаем... [js] function getCheckedValue(radioObj) { if(!radioObj) return ""; var radioLength = radioObj.length; if(radioLength == undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i = 0; i < radioLength; i++) { if(radioObj.checked) { return radioObj.value; } } return ""; } [/js] [js]value = getCheckedValue(document.FormName.elements['r_buttons']);[/js] И все работает! Все прекрасно! в Mozilla FireFox... А вот Осел материца, грит document.FormName.elements['r_buttons'] есть null или не является обьектом при любом выбранном значении. Что ему не так?!?!?
Аа... я ненавижу IE [js] function sendResult(data) { httpXml = createAjax(); postData = "ajax=1&votea=" + data; ajaxGET(httpXml, "/myscript.php", postData); xmlHttp.onreadystatechange = serverResponse; return false; } function serverResponse() { if (httpXml.readyState == 4) { if (httpXml.status == 200) { ----> alert(httpXml.status); <--------- document.getElementById("pnotvoted").innerHTML = httpXml.responseText; } } } [/js] Алертует 200, но httpXml.responseText - пуст! Скрипт /myscript.php вообще не запускается, т.к. в БД нет изменений! Как это все понимать (естественно все это творится в IE)?
это див, где все скачет и меняецо в следствии аякс-извращений, дело в том, что alert(httpXml.responseText); не выдает ничего и (повторюсь) скрипт вообще не запускается от Ajax-функции, т.к. совершенно нет изменений в БД
Ага... оттрассировал ошибку в скрипте идет проверка на isset, т.е. скрипт-то вызывается, но вот значения не передаются! Возвращаясь к предыдущему вопросу: Как заставить IE поймать value нужного мне Radio-button? [js] sendResult(getCheckedValue(document.getElementsByName('votea'))); [/js] ошибок у ИЕ не вызывает, но и значение не выуживает =\
Он меня сводит с ума в прямом смысле! [js]alert(getCheckedValue(document.getElementsByName('votea')));[/js] выводит значение [js]sendResult(getCheckedValue(document.getElementsByName('votea'))); function sendResult(data) { alert(data); httpXml = createAjax(); .... } [/js] не выводит ничего! Аномалия? Т.е. значение не передается в функцию! Какого, так сказать, хрена?!?
Я сошла с ума, тра-ля-ля-ля-ля, какая досада... (с) При переносе на сервак перестал работать JS. На локалхосте все норм. JS !!! Вот код моего онклика (напомню, на LH работает): HTML: onclick= "javascript: var val = getCheckedValue(document.getElementsByName('votea')); alert('!!!!');document.getElementById('p_button').innerHTML='<img src=\'http://www.proilim.ru/e_images/ajax-loader.gif\' style=\'border: 0px; display: block; margin: 0px auto; width: 20px; height: 20px;\' />'; sendResult(val, ".$pollArray['poll_id'].");" Да, немного большой, но суть в том, что алерта нет! =(
Фух, это оказывается закэшировали *.js файл, проблему решил. Ну и окончательный вопрос (он легкий): Как и какой устанавливать charset header для аяксы? на Response, а не open
JS работает с UTF, поэтому меньше всего проблем будем именно с таким контентом. Что касается постановок задач, то TRAC, Bugzilla, Redmine, Mantiss, JIRA А, ну и конечно отдельно плагин Mylyn для EclipsePDT/ZS