| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > narod.ru проверка форм возможна? Можно обойти a[?] |
| Автор: Иль 3.3.2005, 20:51 | ||
| на бесплатном сервисе narod.ru для всех полей форм применяется только имена вида "a[что угодно]" Вроде: input type=text name="a[eMail]" Можно обойти это ограничение, если используется скрипт проверки ввода данных типа:
Может есть другое решение |
| Автор: Иль 4.3.2005, 18:03 |
| Sardar, Aliance, не подскажите, можно это обойти, или забыть и не обращать внимания на непригодные письма приходящие из форм сайта. Aliance, спасибо за приведенную валидацию (то что доктор прописал), а вот защищать от юзверей подменой субмита не буду, пусть пользуют кому надо, лишь бы пустыми и дурацкими письмами не мучали. Жаль эти скобки все портят a[eMail]. Не могу не отметит проверку всех чекбоксов по форме (чтоб отмечен хоть один) предложенную Sardar, завораживает, СПАСИ-Б--БО (с интонацией, как в известном мультике про старого пса и волка), об этом то я и не мечтал, а счастье свалилось. |
| Автор: Aliance 4.3.2005, 18:15 | ||||||
Пользуйся code!
document.all слишком устарела! Пользуйся DOM - document.getElementById("айди_твоего_елемента");
Мы на винграде не в троем сидим :-) Может стоит всех спрасить?
Завсегда =) А теперь по сути: Нужно использовать регульрные выражения! Только хочу уточнить, не ясно: это на ТВОЕМ хосте? Для твоей формы? Если да, то смысл писать на каком это хостинге? |
| Автор: Иль 4.3.2005, 19:26 |
| Нет, JS не для всех одинаков! Вот смотри, беру твои валидации и проверку чекбатонов от Sardar, ставлю на сайт у платного хостера, переиначиваю под себя предложенную тобой функцию validateForm() и все работает. РАБОТАЕТ! А теперь иду на хост от narod.ru и все обламывается. Ну не работают ни твои ни Sardar скрипты (извини что на ты). Там у всех input'ов можно задать только одно имя, типа "a[Что либо по русски или `англицки]", причем только "a[пиши чего хочешь]" и никак иначе. Я могу написать на платном хостинге чего захочу, например: if (isNotEmpty(form.aeMail)) и тд и тп, но! на бесплатном хостинге я могу написать только if (isNotEmpty(form.a[eMail])), ведь у меня имена полей такие и только такие, со скобками [] и скрипты с этими скобками не работают (Script Error), а без скобок CGI на narod.ru работать не будет. Вот например имена: a[пишите письма дедушке], a[imya], a[familiya], a[feedback] и тд. |
| Автор: Aliance 4.3.2005, 19:34 | ||||||||
Кидай код
По русски? Быть не может.
Какая проблема со скобками, не понимаю...
Ого, |
| Автор: Иль 4.3.2005, 19:50 | ||||||
Всегда были стандартные
А как ты хоте, по другому у них не бывает, всеж для народа делается. Не, ну можно для JS и на английском написать. Перепишу, не проблема, но у них работает и по русски.
Спасибо за участие, сейчас я мигом, уберу воду |
| Автор: Иль 4.3.2005, 20:28 | ||
|
| Автор: Aliance 4.3.2005, 20:42 | ||||
Пробел поставь... Млин :-) Есесно так получаеться, а ты чего хотел. Нужно имя аргументом передавать, иначе массив получасеЦа ЗЫ: Пользуйся code. Пользуйся предпросмотром.
Не поверю пока сам не проверю. Такого быть не может. Что у них на русском? JS - так это не от хостинга зависит... ЗЗЫ: жаль Sardar`а временно нет =( некому модерировать топ =( |
| Автор: Иль 4.3.2005, 21:44 | ||||
Да пробел дело вкуса, бог с ним, с пробелом, без него работает(ну за искл переносимости img из шаблонов дримвивера).
В принципе у меня это уже более спортивный интерес, поэтому можно и Спасибо большое, Aliance, успехов |
| Автор: Aliance 4.3.2005, 22:12 | ||||||||||
Убийственная цитата. Да черт с ним, с этим программированием...
Тоже заработает, чего там, делов-то...
Может ты путаешь с value?
При чем тут попапы? Почему это координальное?
А я тебе не выход написал? |
| Автор: Иль 5.3.2005, 19:01 | ||||||||
Господи, реши проблему передачи имени аргументом |
| Автор: Иль 5.3.2005, 20:03 | ||||
| ААААААААААААААА УУУУУУУУУУУУУУУ Ура Ура Ура Я созрел. Ну какой же я невнимательный!!!
Эй, Aliance, ты знаешь, как я счастлив. Спасибо спасибо спасибо, спасибо. Я пошел страгать код. Aliance, что я могу для тебя сделать, повелитель |
| Автор: Aliance 5.3.2005, 21:29 | ||||||||||||
Советую начать учить JS просто :-)
Ты про спецификацию XHTML говоришь, а я про другую
На самом деле я не знаю и могу ошибаться, но это действительно моему уму не понять 8))
Скромно ты так : )))))))
Быть внимательнее А вообще, на данном форуме есть функция Репутация - http://forum.vingrad.ru/index.php?act=rep&CODE=03&mid=5467 )) |
| Автор: Иль 6.3.2005, 00:26 |
| Угу, понял и JS учить буду. Надеюсь кому-нибудь, когда-нибудь и я помогу. Про репутацию - понимаю, да и наследил (есть тут чего Sardar'у модерировать Всего доброго, спасибо, Илья. |
| Автор: Aliance 6.3.2005, 00:54 | ||||
Видимо ты не так понял
Всего доброго, теска |
| Автор: Иль 6.3.2005, 09:33 | ||
|
| Автор: Aliance 6.3.2005, 16:16 |
| Репутация - уровень, отобажающий отношение других пользователей к данному. Например, за мат, оскорбление и т.п. обычно понижают репутацию, гажимая на [-] под аватарам юзера, и поощеряют, нажимая [+] под аватаром, за подсказку, помощь, хороший код и т.д. 8)) |
| Автор: Sardar 11.3.2005, 18:34 | ||
| Ёлки! Мне это вычистить не под силу Иль если проблема со скобками в имени была, то решается через "обрщение по индексу":
Мы просто указали поле как индекс, передав строковое имя. |
| Автор: Иль 12.3.2005, 21:17 |
| О-О-О!!! Изначально думал о подобном решении, об id даже не задумывался. Теперь полный восторг от Винграда! Спасибо! |
| Автор: Greendrake 9.12.2005, 10:29 | ||
| В форме несколько INPUTов c именами a[1], a[2].... a[n] Как обратиться к конкретному из них? document.forms['frm'].a[x] не работает document.getElementById('a[x]') не работает в Мозилле и Файрфоксе Проблемный код:
P.S. 2 Aliance: хотелось бы вместе с посылом к поиску видеть конкретный пример поискового запроса, приводящего к этой теме, или ключевые слова. Я пытался отыскать, но не нашёл. |
| Автор: Zeroglif 9.12.2005, 12:07 | ||
| Greendrake Дружище, всего на 2 поста выше в этом топике написано решение (Sardar). Есть ещё топики про то же самое: http://forum.vingrad.ru/index.php?showtopic=68159 http://forum.vingrad.ru/index.php?showtopic=65138 На всякий случай уточню:
Это дело называется Square Bracket Notation (SBN), можешь ознакомиться подробнее тут: http://jibbering.com/faq/faq_notes/square_brackets.html Твой случай описан там в разделе Illegal characters in Identifier-strings. |
| Автор: Sardar 9.12.2005, 12:38 | ||||
| Как обратиться к полю формы, в имени которого есть контрольные символы, например []? Просто указываем полное имя в виде строки:
Этот приём "индексирования" применим для любых обьектов в JS. Имена полей могут иметь любые символы:
Этой свободой можно пользоваться при построении словарей, но нужно учитывать что все обьекты наследуют интерфейс от Object, так что такие ключи как "toString", "wait" и т.д. приведут к неожиданным результатам. Выход: добавлять тильду '~' перед своим ключём, тогда точно конфликтов с именами не будет. |