#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>