Используя Prototype, как я могу предотвратить отправку формы кнопкой? - PullRequest
1 голос
/ 23 июня 2011

У меня есть форма с двумя кнопками.Нижний должен отправить форму на сервер.В середине формы есть еще одна кнопка, которая должна вызвать простую функцию оценки и добавить это значение оценки в новое поле формы (которое будет или не будет отправлено в зависимости от его существования).

Используя библиотеку Prototype js, как отменить эту среднюю кнопку для отправки формы и заставить ее выполнять функцию вычисления / добавления DOM?

РЕДАКТИРОВАТЬ:

Что яв настоящее время не препятствует отправке формы ...

$$('.form-submit-calculate').each(function(calculator){
calculator.observe("click",function(){alert('calculate'); return false; });
});

для

<div id="cid_31" class="form-input-wide">
                    <div style="margin-left:406px" class="form-buttons-wrapper">
                        <button id="input_31" class="form-submit-calculate">
                            Get Score
                        </button>
                    </div>
                </div>

Ответы [ 4 ]

7 голосов
/ 23 июня 2011
Event.observe('scoreButton', 'click', function(e) {
    Event.stop(e);
  }
});
3 голосов
/ 23 июня 2011

Ваш button не должен автоматически отправлять вашу форму.

Дайте ему type="button", и ничего не произойдет.Нет действия по умолчанию с type="button".Затем вы устанавливаете действие в своем JS.

Подробнее: http://reference.sitepoint.com/html/button

0 голосов
/ 23 июня 2011

Мне кажется, это помогает мне:

$$('.form-submit-calculate').each(function(calculator){

            calculator.onclick = function(){
                    alert('calculate');
                    return false;
                }


        });

Не стесняйтесь сказать мне свой лучший, более элегантный ответ!(И почему это так ... Я просто сейчас разбираюсь с Prototype, понятия не имею, что такое лучшие практики.)

0 голосов
/ 23 июня 2011

просто имеет функцию, которая прикреплена к событию нажатия кнопки, которую вы не хотите отправлять, возвращает false. вы также можете использовать e.preventDefault в функции события.

...