1. Куча / Говнокод #17138

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <div>
    	<label for="background-color">Choose a calor for background : </label>
    	<input id="background-color" type="color" value="#ff0000" onchange="javascript:document.getElementById('chosen-color').value = document.getElementById('background-color').value;"/>
    </div>
    <div>
    	<label for="chosen-color">You have chosen : </label>
    	<input id="chosen-color" type="text" readonly value="#ff0000"/>
    </div>

    Кроме того что тут inline JS event, да к автор еще умудряется использовать document.getElementById('choosen-value').value вместо this.value .

    Запостил: volter9, 19 Ноября 2014

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

    • Ахтыжёперныйтеатр! Вот, ведь, негодяи!
      Ответить
    • >calor
      :)

      Унылое говно, не забористое.

      Особенно уныло представлять что будет делать говнокодер когда кроме бекграунда понадобица еще и форграунд.
      Ответить
      • О, а вот этого я не заметил. Да к теперь все понятно это выбор кал-цвета )
        Ответить
        • Самое смешное что товарищ вроде про HTML5 знает, и верстка у него не самая плохая (хотя я обычно двоеточие через content навешиваю, т.к. это не часть модели) и как-бы ожидаешь что он вынесет JS в отдельный модуль через какой-нить requirejs, и там какой-нить jQueryей навешает нужные обработчики, и вдруг рраз -- и такой web 1.0 торчит!
          Ответить
          • К стати, исходник тут: [url]http://www.html5tutorial.info/html5-color.php[/url]
            Если посмотреть на тот (^) код то можно сказать что он вообще ничего не знает про блочную верстку. 50-строка доставляет лулзов :)
            ---

            А вообще я не согласен с вами про вынос JS в модуль и jQuery (в данном случае). Автору кода все что нужно сделать (в данном случае), да к это поменять значение другого поля. Тут даже jQ будет излишен. Так что код приблизительно должен быть таким:

            document.getElementById('background-color').addEventListener('change', function () {
            	document.getElementById('chosen-color').value = this.value;
            });


            Но естественно, моя версия не будет работать в IE (attachEvent), т.к. я не знаю как писать JS под IE (OS и религия не позволяют).
            Ответить
            • Так всё просто же: http://javascript.ru/tutorial/events/crossbrowser
              Главное — долистать до конца страницу этого руководства.
              Ответить
            • input type=color тоже не везде работает :)
              Ответить

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