- 1
<a href="javascript:void(0)" onclick="this.parentNode.submit(); return false;">Добавить</a>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144.9
<a href="javascript:void(0)" onclick="this.parentNode.submit(); return false;">Добавить</a>
в ответ на http://govnokod.ru/1994 и длинный флуд в коментах.
говнокод или нормально?
нормально, патамушта
1) линк может быть ВНЕ формы, и это самое очевидное
2) http://govnokod.ru/1994
это новый пример - не надо брать ответы из другого поста.
раскажите теперь как плох фрагмент кода. абстрагировавшись от контекста где он используется. есть только одна строчка кода. не надо строить догадки где что используется.
ссылку цитировать ненадо - ссылка в описании говнокода.
А ссылка в описании кода - не говнокода
"есть только одна строчка кода. не надо строить догадки где что используется." - как-то хреновато, мягко гря, вяжется с "парент - форма". ну не видно, что тут парент. так что парент может быть любым, а форма гденить в заднице. как тебе это ещё доходчивее объяснить яхз. ну адекватнее читай, штоле
тогда твои догадки построились в одну цепочку, теперь другая.
у тебя есть фрагмент кода. и надо абстрагироваться от остального кода. и есть мнение отличное от твоего. и оба варианта имеют право на жизнь, и ниодин не лучше другого.
1) jquery был подключен - потому что очевидно onclick="$('#frm').submit(). на прототайп не кричи, была бы другая запись
2) форма существует, потому что обычно разработчики сабмитят форму. ты можешь сабмитить что угодно, это уже не вызывает сомнений наверное ни у кого
3) пример современного браузера без поддержки жс есть?? я таких не знаю. Можно жс отключить, но юзеры этого делать не будут. в веб 2.0 юзер без жс, без флэша - не юзер. Он будет качать флэш и не выключать жс. И даже естли какбе типа вроде жс был отключен, то и твои вопли про parentNode нах были??
В общем это реально клиника, упёрся ты как баран. Пойду-ка я читать более весёлый и разнообразный код. Может кто тебе тут ещё наотвечает, повесели людей своей реакцией ;-DDD
"javascript:void(0)" - обыкновенный вызов функции void() с параметром 0
"this.parentNode.submit();" - а это всё обыкновенная жс-ная работа с ДОМом, никаким jquery тут тоже не пахнет.
"return false;" - наверное jquery сдесь :))
З.Ы. откуда кто-то вообще нашёл "$('#frm').submit()" о_О.
З.З.Ы. Похоже что код - попытка реализовать отправку данных без перезагрузки страницы. Имхо - банально не сработает. Во всяком случае в знакомых мне браузерах.
<a href="#" class="lalalala" onclick="$('#frm').submit()">Подтвердить </a>
Просто товарищ решил вынести, на его взгляд, правильное решение отдельным постом
На З.Ы.Ы. Сработает, если перехватить событие onsubmit формы
Имеется ввиду выполнение какой-нибудь функции в онсабмите? Тогда это тру говнокод, ведь было бы куда проще и логичнее обходя все сабмиты сразу эту функцию выполнять ).
Или сдесь речь идёт про то что каким-то перехватом онсабмита, можно сабмитить на сервак данные без перезагрузки страницы? (без принципов AJAX, а конкретнее без XML запросов.)
"Re[240]: ну правда это говнокооооод.... ну ребятаааа"
автор, this.parentNode - говнокод
автор, $(this).parents('form') тоже был бы говнокодом
автор, $('#anyform') - не говнокод, говнокод там был только в href="#"
да и чего вы к жыквери прицепились то, понятное дело, что ради элементарного сабмита он нахрен не сдался
средняя кнопка? для сабмита формы? зачем? да и если бы там было #, то средняя кнопка тоже ничего не решила бы
средняя кнопка в новом окне/табе откроет href
href="javascript:..." ни в коем случае
да и наличие кода js непосредственно в html элементах некошерно, ибо html = view (исключение javascript:void(0))
а его кошерность в том, что браузер в реальности не делает _ничего_, в отличие от #
и да, давайте спихивать все на говнокодера Васю ;)
pps. факинг коментс эдитинг...
Про библиотеки, молча соглашусь с sudden_def.
речь не о работе с DOM напрямую или нет!!!
речь о неприемлемой зависимости от родительских узлов дерева
теми строками я пытался объяснить что:
1. this.parentNode может вовсе и не быть метода submit()
2. у this может и не быть родительского элемента form
3. $('#anyform') == document.getElementById('anyform'), - не говнокод
Гаже этого может быть только запрос типа ``parent.parent.parent.parent.children[4]``
баян
код говно, разумеется