Форма asp.net не отправляется, когда событие «onsubmit» вызывает функцию javascript - PullRequest
0 голосов
/ 22 декабря 2011

ситуация такова:

Я хочу отключить все элементы управления на странице (возможно, с использованием наложенного div) при отправке формы, чтобы пользователь не мог нажимать другие кнопки, пока страница все еще не обрабатывает обратную передачу. Итак, я использовал событие onsubmit формы для вызова функции javascript, которая делает то же самое. Но теперь эта функция вызывается, а форма вообще не публикуется. Я даже пытался, используя «вернуть истину»; как последняя строка моей функции JavaScript, но форма не публикуется.
Это моя функция JavaScript:

function DoThis() 
    {
        alert('this form is about to be submitted...');
        return true;
    }

и это мой тег формы:

<form id="form1" runat="server" onsubmit="DoThis();">

Что здесь не так ??? Кроме того, дайте мне знать, если есть какой-то другой способ, который будет служить моей цели ??? Благодаря.

РЕДАКТИРОВАТЬ: я не имею в виду вызовы ajax здесь, так как панели обновления уже имеют функции для включения этого поведения. Я хочу эту функциональность для всей страницы, даже когда нажата кнопка вне панели обновления, что приводит к полной обратной передаче, а не только для ajax-вызовов (так как у пользователя обычно есть достаточно времени, чтобы нажать 2 или 3 кнопки, к тому времени, когда страница перенаправлена ​​или перезагружена).

Ответы [ 5 ]

4 голосов
/ 23 декабря 2011

Через серию хитовых испытаний я наконец-то понял, что мне не хватает ключевого слова return для добавления в мой тег формы.Итак, я изменил свой тег формы как:

<form id="form1" runat="server" onsubmit="return DoThis();">

Глупые вещи едят много времени.Вероятно, в опыте .

4 голосов
/ 22 декабря 2011

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

<form id="form1" runat="server" onsubmit="return DoThis();" >

ИЛИ

function DoThis() 
    {
        alert('this form is about to be submitted...');
        this.submit();
    }
0 голосов
/ 09 октября 2015

конечно onsubmit не будет работать с asp.net.

Я решил это очень простым способом.

если у нас есть такая форма

<form method="post" name="setting-form" >
   <input type="text" id="UserName" name="UserName" value="" 
      placeholder="user name" >
   <input type="password" id="Password" name="password" value="" placeholder="password" >
   <div id="remember" class="checkbox">
    <label>remember me</label>
    <asp:CheckBox ID="RememberMe" runat="server" />
   </div>
   <input type="submit" value="login" id="login-btn"/>
</form>

Теперь вы можете поймать получить это событие перед обратной передачей формы, остановить его от обратной передачи и выполнить все необходимые действия, используя этот jquery.

$(document).ready(function () {
            $("#login-btn").click(function (event) {
                event.preventDefault();
                alert("do what ever you want");
            });
 });
0 голосов
/ 22 декабря 2011

Это работает для меня.

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

    <script>

        function testSubmit(form) {
            form.submit();
        }

    </script>

</head>
<body>

    <form action="http://www.yahoo.com" id="myForm" onsubmit="testSubmit(this)" >
    First name: <input type="text" name="firstname" /><br />
    Last name: <input type="text" name="lastname" />
    <input type="submit"  value="Submit" name="submit" />
</form>

0 голосов
/ 22 декабря 2011

в функции DoThis добавьте this.submit () '1001 *

function DoThis() { alert('this form is about to be submitted...'); this.submit(); } Я не проверял это. Пожалуйста, проверьте.

Используете ли вы какие-либо библиотеки js, например JQuery?

...