addEventListener и onclick
Есть форма, которая отправляется с помощью <input type="submit">. Но отправка не нужна, поэтому
var form = document.getElementById('formID'); form.onsubmit = function () { return false; } код работает, форма не отправляется. var form = document.getElementById('formID'); form.addEventListener(function() { return false; }); уже не работает и страница обновляется при нажатии на кнопку. Почему? |
Цитата:
|
danik.js,
А тебя разве спрашивали почему должно быть так, или иначе? Отвечай на поставленный вопрос, если знаешь, а не разводи демагогию. Я вот не знаю, например, но я и не суюсь. А ты, стало быть знаешь, раз с такими понтами ворвался в тему? |
krutoy, у меня к тебе вопрос:
У меня на столе лежит кнопочка. Почему, когда я ее нажимаю, не происходит пуска ядерных ракет? Отвечай, сцуко, на поставленный вопрос и не разводи демагогию. |
Цитата:
|
Это почему? Ракеты запускаются кнопкой же! У меня точно такая же кнопка. Так почему она не работает?
|
danik.js,
Короче, я пришел к тому, что это кривизна в реализации addEventListener на уровне языка. Он не только этим плох. Надо избегать этого говна, по-возможности. |
Цитата:
form.addEventListener('submit', function(e) { e.preventDefault(); }, false); |
Цитата:
|
devote,
Оно не работает. Я это в првую очередь проверил, тоже хотел написать. |
Цитата:
|
Цитата:
<form id="formID" action="http://ya.ru"> <input type="submit"> </form> <script> var form = document.getElementById('formID'); form.addEventListener("submit", function() { return false }); <form id="formID" action="http://ya.ru"> <input type="submit"> </form> <script> var form = document.getElementById('formID'); form.onsubmit = function () { return false } </script> |
krutoy,
:-? <form id="formID" action="http://ya.ru"> <input type="submit"> </form> <script> var form = document.getElementById('formID'); form.addEventListener('submit', function(e) { e.preventDefault(); }, false); </script> |
рони,
Да, только это "ршение" изящным не назовешь, потому что ты без костылей не можешь повесить функцию, возвращающую false сразу на несколько событий. Поэтому я и говорю о кривизне. Решения не эквивалентны. |
Цитата:
|
danik.js,
Не в курсе, и это не имеет отношения к вопросу. |
krutoy, объясни, почему ты решение с return false считаешь хорошим, а с preventDefault() - плохим?
|
danik.js,
Мне щас некогда, дела, позже объясню:) |
return false по-моему только для dom'ных инлайн событий.
|
Например
onclick="{return confirm('Are you really sure to continue?')}" |
Часовой пояс GMT +3, время: 23:40. |