HTML+JS: name d IE
что такое ccc ?
http://forum.ixbt.com/topic.cgi?id=24:39018
а вообще не пользуйся этим. пользуйся id-шниками
а вообще не пользуйся этим. пользуйся id-шниками
<input type="text" id="aaa" name="ccc">
id это конечно хорошо, здорово и вечно, но у меня контролы генерятся жабаскриптом, а потом на сервере нужно получить их значения, а они вроде по name-у доступны ... или я чего-то не понимаю?
id это конечно хорошо, здорово и вечно, но у меня контролы генерятся жабаскриптом, а потом на сервере нужно получить их значения, а они вроде по name-у доступны ... или я чего-то не понимаю?пускай жаваскрипт генерит и id и name
id будешь использовать для джаваскрипта на странице
name будешь использовать для передачи серверу
и проблема именно в том, что я name генерю, а он остаётся темже ( в ИЕ )
я name генерюкак ты это делаешь?
name можно генерить токо при создании элемента, т.е. менять его потом нельзя
т.е. вот это:
document.getElementById('aaa').name = "zzz";
делать нельзя
дело в том, что генерю я их следующим образом:
есть скрытый образец (заранее неизвестно какой например:
<tr style="display:none" id="aaa">
<td><input type="text" id="aaa_txt"></td>
<td><select id="aaa_ddl">...</select></td>
<td><textarea id="aaa_tbox">....</textarea></td>
</tr>
функция принимает его в качестве параметра
копирует при помощи node.cloneNode(true); и рекурсивно пробегает заменяя aaa_ На aaa_1_, aaa_2_ итд
тоесть, чтобы всё работало мне нужно пробегать по дереву, генерить каждый узел с помощью createElement и копировать все атрибуты?
в таком случае разрешаю тебе менять name на лету
ток меняй его через setAttribute('name') а не через прямое присвоение
и не используй функцию getElementsByName вообще
<tr style="display:none" id="aaa">
<td><input type="text" name="aaa[]"></td>
<td><select name="bbb[]">...</select></td>
<td><textarea name="ccc[]">....</textarea></td>
</tr>
и просто его клонировать без всяких пробеганий - пусле субмита формы на сервер будут приходить aaa,bbb,ccc в виде массивов
пусле субмита формы на сервер будут приходить aaa,bbb,ccc в виде массивовАфаик это зависит от того, какой из серверных языков он использует, чем пользуется для парсинга GET/POST-запросов.
Вполне возможно, что такого вообще нигде нет, кроме PHP.
ты думаешь что http это часть php?
HTTP - это HTTP, и я не уверен, что в нём вообще как-то определено то, что называется "search string" - то, что между ? и # в строке запроса или содержимое данных POST.
А как уж там сервер будет разбираться, что именно означает aaa[]=b&aaa[]=c - точно нигде не стандартизировано.
точно нигде не стандартизированотоесть если чтото не стандартизировано то об этом нужно пиздеть на форуме?
Если что-то совершенно не стандартизировано и ни в каких общих местах не описывается, а является лишь фичей конкретного языка - это повод предупредить об этом слушателей, если им только что кто-то посоветовал это, как решение их проблемы, без указания того, что для этого надо пользоваться этим конкретным языком.
лучше бы она была такой:
Если есть повод дать дурацкий совет, то лучше его не давать.
вот аналогия того что ты посоветовал:
Весь наш мир это иллюзия, вполне возможно что только php не иллюзиявот аналогия твоего ответа на вопрос зачем ты это сделал:
Весь наш мир иллюзия - это повод предупредить об этом слушателей, если им кто-то посоветовал что-то, как решение их проблемы, без указания того что все бессмысленно в иллюзорном мире
Ты сказал человеку - "сделай вот так, и у тебя всё заработает".
Я уточнил - "заработает только если ты используешь PHP".
Всё конкретно, никаких иллюзий.
Что тебе не нравится?
Ты сказал человеку - "сделай вот так, и у тебя всё заработает".не нравится слово "только"
Я уточнил - "заработает только если ты используешь PHP".
Что тебе не нравится?
это вранье, что ни в одном другом языке это не заработает
а без слова только эта фраза не несет смысловую нагрузку
Ты сказал человеку - "сделай вот так, и у тебя всё заработает".Сказал не он, а я. И я так, как ты процитировал, не говорил. Я предложил вариант, который поддерживается браузерами и http-серверами. А дальше уже топикстартеру разбираться поддерживает его язык такое или нет. Мой ответ предполагает дальнейший гуглинг и тестинг - никакой конкретики в нем не было.
По теме топика уже разобрались ( ответил достаточно полно а дальше уже можно можно развивать тему и предлагать альтернативные конструкции и решения.
Я предложил вариант, который поддерживается браузерами и http-серверамиГоворить "поддерживается браузерами" в данном случае нельзя - точно так же, .exe-файлы поддерживаются линуксом (и вообще практически любой ОС - ведь можно хранить в файловой системе эти .exe-файлы!)
Потому что для браузеров и http-серверов такая запись не имеет абсолютно никакой смысловой нагрузки. Им насрать, что ты там напишешь в атрибуте name (точнее, на это насрать браузерам, а http-серверы даже и не знают о том, что строка запроса - это какие-то там имена параметров и их значения).
не нравится слово "только""Только" я сказал уже в самом конце, чтобы до тебя дошло.
это вранье, что ни в одном другом языке это не заработает
Да, возможно, кроме PHP, ещё несколько языков таким же образом обработают эту конструкцию. И что, теперь можно её советовать без какого-либо указания того, как это использовать.
я юзаю аспнет, достаю из Request.Form
естественно, aaa[] не прокатит
getElementsByName - привёл только как иллюстрацию того что ие что-то не то делает, в реальном коде я его естественно не пользую
между setAttribute("name",...) и просто .name = ... никакой разницы не обнаружено
теперь положительный момент: оказывается косяк проявляется только на клиентской стороне - на сервер отправляются значения под теми именами, которые я присвоил - для текущей задачи мне этого достаточно.
всем спасибо за внимание и посильную помощь
естественно, aaa[] не прокатиткак это "естественно не прокатит"?
Request.Form.GetValues('aaa') - это и есть массив значений
пришлось изза тебя гугл открывать на апс.нет код впервые увидел
2: ну я правда не знаю ни один широкораспространенный язык где бы это не было массивом
Request.Form.GetValues('aaa') - это и есть массив значенийдля того чтобы это работало, name должен быть просто aaa без всяких скобок
ps
скобки это чисто php-шная фигня
Оставить комментарий
Vyacha
есть инпути есть функция
в IE6 выводит
1
0
1
0
innerHTML Тоже не меняется
почему так и главное! как это преодолеть?
в опере и файрфоксе такого эффекта нет