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, время: 18:30. |