1. JavaScript / Говнокод #6389

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    <table>
         <form method="post" action="/ololo/onatole.html?step={{if $step eq '2'}}3{{else}}6{{/if}}">
         <tr><td><a id="submit">...
    ....

    фаерфокс отлично парсит такие формы внутри таблиц, jQuery(this).closest('form') тоже возвращает все превосходно

    Запостил: govno, 18 Апреля 2011

    Комментарии (28) RSS

    • Ну и? Как раз ограничение на расположение form само по себе редкое говно.
      Ответить
    • плюсоваю, т.к. jquery - говно
      Ответить
    • я извиняюсь, но не говно, т.к. иногда именно так и приходится делать, т.е. пихать формы в таблицу меж строчек, по форме на строчку, и потому что:
      1. должна быть правильная вложенность
      2. формы нельзя вкладывать друг в друга

      Например, список в виде таблицы в формате
      (надпись) [кнопка] [кнопка]
      причем надпись и кнопки выравниваются столбцами таблицы.


      Единственный выход здесь - вообще не использовать таблицы для верстки.
      Ответить
      • ах, да, едет уеб-дизайнер в поезде, а колеса стучат <td></td><td></td>
        говно же, форма в таблице

        но самая срань там, где фигурные скобки
        Ответить
        • фигурные скобки - это смарти, что б его, детектед
          Ответить
          • А что плохого в фигурных скобках?
            Ответить
            • т.к. PHP является говном; смарти, сделанное на PHP, неизбежно является метаговном
              Ответить
              • нет. в фигурных скобках плохо то, что они не являются уголками. Я видел лучшую жизнь, например, шаблонизатор tapestry5. Там вот почти нет фигурных скобок, а управляющие конструкции описываются xml (html) тегами.
                Ответить
                • У нас в джанге тоже фигурные скобки. Вот уж точно не жалуюсь.
                  Я видел худшую жизнь с HTML::Template, c <tmpl_var varname> и то не круто
                  Ответить
                  • HTML::Template немного лучше, чем смарти, но тоже еще не совсем то.
                    плиз, зацените, как все приятно в тапестри:
                    (простенький шаблон компонента вывода флажков)
                    <div id="locales" xmlns="http://www.w3.org/1999/xhtml"
                    	xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
                    	<span t:type="Loop" t:source="locales" t:value="locale">
                    		<a href="#" t:type="ActionLink" t:context="locale">
                    			<img alt="${localeText}" src="${localeFlag}" />
                    		</a>
                    	</span>
                    </div>
                    вот такой шаблон вполне можно отдать верстуну, не особо опасаясь, что он не поймет или испортит функциональность. Да и в визуалке мы увидим спан с изображением-линком
                    Ответить
                    • Ну, так как я абсолютно не имею понятия, что такое тапестри, я совсем не понял, что значат все эти атрибуты.
                      t:type="Loop" значит цикл будет из этих спанов?
                      Ответить
                      • > что такое тапестри
                        это java фреймворк, http://tapestry.apache.org/
                        атрибуты в неймспейсе означают, что их тапестри выводит как есть, только с префиксом t: имеют значение
                        т.е.:
                        1. div id="locales" так и останется
                        2. xmlns информационные
                        3. t:type="Loop": тапестри заменит span на последовательность из элементов что внутри спана, примерно как FOR EACH locale IN locales
                        4. для каждой итерации будет сгенерена ссылка ActionLink на код, причем вместо a href="#" мы можем писать что нам нравится
                        5. в теге img значения атрибутов alt и src будут выставлены для каждой итерации результатами работы соотв. методов
                        Ответить
                        • 3. По-моему, форыч куда понятней )
                          4. Совсем не понял :) Уже ж написали <a href=, что ещё ставить?
                          Ответить
                          • 3. ну так это и есть форыч, только записан по правилам xml :)
                            4. а вот в том и фишка, что можно тоже написать хоть <span, хоть <div - все равно будет сгенерен <a href=.
                            Вот в этом прелесть Тапестри, что t:type определяет компонент Тапестри (стандартный или пользовательский), который уже решает, как рендерить данный тег. А шаблон мы можем писать так, как нам удобнее.
                            В случае с линками, конечно, нагляднее ставить <a href=

                            И кстати вместо <span t:type="Loop" можно написать даже просто <t:loop :)
                            Ответить
                            • Вообщем, как-нибудь на досуге попробую осилить этот четвёртый пункт, а то пока мне это кажется какой-то чушью, но так же всегда бывает, когда чего-то не понимаешь сразу.
                              Ответить
                              • советую вообще посмотреть в сторону фреймворка, приятнее штуки я еще не видел, хотя, конечно, идеи там применены нестандартные. Зато быстро въезжаешь, и очень быстро потом разрабатываешь. имхо, никакой jsf или wicket рядом не валялся
                                Ответить
                                • Вот, чего-то мне тут на ночь глядя кажется, что лучше чем php - шаблонизатора не взвидеть...
                                  А логика - это на чём-нибудь другом пускай пишется...
                                  Ответить
      • т.е. вкладывать именно так: <table><form></form><tr><td></td><tr>...
        а не так: <table><tr><td><form></form></td><tr>...
        ?
        Ответить
        • нет, так:
          <table>
           <form>
            <tr>
             <td>
             </td>
            </tr>
           </form>
           <form>
            <tr>
             <td>
             </td>
            </tr>
           </form>
          </table>
          Ответить
          • действительно, что-то ничего кроме решения на js в голову не лезет
            http://jsfiddle.net/WcvFj/3/
            Ответить
            • видимо, заменить таблицы на дивы и приаттачить ксс для красоты.
              бтв Недале как вчера закончил модуль, сверстав шаблоны таблицами именно вот так, и отдал верстуну для наведения красоты
              Ответить
          • но почему не <td><form></form></td> ??
            именно в td же "полезное" пространство
            Ответить
    • Область видимости? Не, не слышал
      |onatole
      ОНОТОЛЕ негодует и накажет автора за неправильное написание его имени!
      Ответить

    Добавить комментарий