Я использую ASP.NET MVC и Microsoft AJAX для создания формы AJAX, используя следующий синтаксис:
using (Ajax.BeginForm()) { ... }
Это прекрасно работает, если пользователь нажимает кнопку отправки. Тем не менее, мне также нужно программно отправить форму. Проблема в том, что MS AJAX работает (по причинам, которые меня избегают) в том, что он помещает действие submit в атрибут onsubmit
вместо регистрации события:
<form onsubmit="Sys.Mvc.AsyncForm.handleSubmit(..."
method="post" action="/Search/SearchForClients">
Причина, по которой это проблема, заключается в том, что если вы используете jQuery для отправки формы программно (т.е. $('form').submit()
), содержимое атрибута onsubmit
не вызывается.
К счастью, на этом сайте я нашел обходной путь, который говорит вам, что нужно в основном оценить содержимое атрибута onsubmit
и добавить его в качестве обработчика события:
$("form").submit(function(event) {
eval($(this).attr("onsubmit")); return false;
});
Итак, мой вопрос: есть ли какие-либо проблемы с безопасностью, о которых я должен знать при этом? Кажется, что все должно быть в порядке, но я хочу быть уверен, прежде чем я начну добавлять evals в мой код.