На странице веб-форм ASP.NET, где есть какая-либо форма, я не могу отправить с использованием простой javascript, но используя jQuery, я могу представить.
Пример:
[...]
<head>
[...]
<script type="text/javascript">
function submitting() {
alert('Submitting');
return true;
}
</script>
</head>
<body>
<form id="testform" onsubmit="return submitting();"></form>
[...]
</body>
[...]
Затем в консоли:
> $('#testform')
[<form id="testform" onsubmit="return submitting();"></form>]
Тогда, как ожидается, вызывая .submit() работает, как ожидалось
> $('#testform').submit()
работает!
Но с помощью document.getElementById:
> document.getElementById("testform")
<form id="testform" onsubmit="return submitting();"></form>
> document.getElementById("testform").submit()
undefined
Я считаю, что document.getElementById("testform").submit()
фактически вызывает постбэк, но я не знаю, почему она не будет представлять форму, как и ожидалось.
Любые идеи?
'myform.onsubmit()' делает работу, как и следовало ожидать, но почему бы ' myform.submit() 'не запускать onsubmit, а' $ ('# myform'). submit() будет? – BenM
Поскольку jQuery делает это вручную для вас способом, подобным тому, что я делал выше. Не забывайте, что обработчики событий jQuery являются абстракцией от собственной системы обработки событий. –
Weirdness в системе комментариев. Сначала он дважды отправил мой комментарий, затем, когда я удалил один, другой тоже ушел. Во всяком случае, 'myform.onsubmit(); myform.submit(); 'было то, что я разместил выше, так что все имеет смысл. –