Jquery устанавливает функцию события в форме

#javascript #jquery #events

#javascript #jquery #Мероприятия

Вопрос:

У меня есть форма, которая отображается в модальном окне, теперь я хочу иметь возможность использовать одно и то же модальное поле для двух разных страниц, где они выполняют немного разные действия. Есть ли способ, которым я могу установить событие или что-то еще для кнопки отправки форм, чтобы указать, какую функцию javascript она вызывает.

Я хочу сделать это из javascript без изменения моего кода формы.

Каков наилучший способ сделать это? Могу ли я присвоить функции значение переменной и вызвать ее с помощью моего кода кнопки?

ie:

 var buttonFunction;
//Set the button function on load

function MyButtonFuntion() {
    buttonFunction();
}
  

Ответ №1:

вы могли бы сделать это следующим образом:

 var buttonFunction;
if(someCondition){
  buttonFunction = function(){
     alert("some action");
  };
}else{
  buttonFunction = function(){
     alert("other action");
  };
}

function MyButtonFuntion() {
    buttonFunction();
}
  

Комментарии:

1. Отлично, думал, что это возможно, просто не мог понять, как.

Ответ №2:

Вы можете объявить переменную с именем функции, которая будет вызвана при отправке. Следующий код является примером. Объявление функции для вызова в переменной functionToCall внутри формы здесь всегда будет работать.

 <script type="text/javascript">
    function callMyFunction(formName) {
        var formObj = eval("document."   formName);
        if(formObj != null) {
            var functionToCall = eval(formObj.functionToCall.value);
            if(functionToCall) {
                functionToCall();
            }
        }
    }
</script>
<form method="post" name="form1">
    <input type="hidden" name="functionToCall" value="form1Function"/>
    <input type="button" onclick="callMyFunction('form1')"/>
</form>