2013-06-15 3 views
2

Прямо сейчас я немного дилемма, потому что я не могу редактировать onSubmit моей формы, поэтому мне придется установить ее динамически. Моя проблема, я понятия не имею, как это сделать без перезаписи значение, которое уже в onSubmit
Например, предположим, что у меня есть этот код:
Как установить `onSubmit` динамически с помощью JavaScript

<form name="bob" onSubmit="something-i-cannot-change"> 

</form> 

Как бы я установить другую функцию, чтобы это произошло onSubmit наряду с другой функцией, которая уже существует? Я посмотрел это и не повезло ... Спасибо, я очень ценю любую помощь !!!

Примечание: Если этот вопрос является дубликатом чего-либо, то, пожалуйста, дайте мне знать!

ответ

4
document.querySelector('[name="bob"]') 
     .addEventListener('submit', 
          functionThatDoesSomethingAfter); 

Обратите внимание, что форма уже должна быть в DOM, поэтому поместите код в конец тега тела.

https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener

+0

Ааа красиво ... Я должен проверить это утром, и в скором времени опубликовать результат! :) – pattyd

1

Сохранить ссылку на существующий onSubmit функции, а затем создать новую onSubmit функцию, которая делает то, что вы хотите, и затем вызвать оригинал.

// jQuery syntax for DOM work 
var originalSubmit = $('#bob').onSubmit 
$('#bob').onSubmit = function() { do stuff here then call original }; 
+2

В OP нет ничего, что указывает на использование jQuery. – Umbrella

+0

Да, я ценю помощь, но я бы предпочел не использовать Jquery в этом, так как я уверен, что это можно сделать с помощью JavaScript ... Спасибо за ваше время! – pattyd

+0

Я предположил jQuery, но два вызова можно заменить document.getElementById ('bob') –

1
document.getElementById("<element-id>").setAttribute("onSubmit", "<action>"); 
Смежные вопросы