Как отключить обратную передачу на кнопке asp

У меня есть кнопка asp. Это серверная сторона, поэтому я могу показать ее только для зарегистрированных пользователей, но я хочу, чтобы она запускала функцию javascript, и кажется, что когда она runat = "сервер", она всегда вызывает событие postback.

У меня также есть регулярная кнопка (<input... > ), не работающая на сервере, и она отлично работает...

Как я могу заставить эту кнопку запускать javascript, а не postback?

Ответ 1

Пусть ваш javascript вернет false, когда это будет сделано.

<asp:button runat="server".... OnClientClick="myfunction(); return false;" />

Ответ 2

YourButton.Attributes.Add("onclick", "return false");

или

<asp:button runat="server" ... OnClientClick="return false" />

Ответ 3

Вы можете использовать действие jquery click и использовать функцию preventDefault(), чтобы избежать обратной передачи

<asp:button ID="btnMyButton" runat="server" Text="MyButton" />


$("#btnMyButton").click(function (e) {
// some actions here
 e.preventDefault();
}

Ответ 4

Рассмотрим это.

<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
function BeginRequest(sender, e) {
    e.get_postBackElement().disabled = true;

}
     </script>

Ответ 5

Другие правы, что вам нужен ваш обратный вызов для возврата false; однако я хотел бы добавить, что делать это, устанавливая onclick - уродливый старый способ делать что-то. Я бы рекомендовал прочитать ненавязчивый javascript. Использование библиотеки типа jQuery может облегчить вашу жизнь, а HTML меньше связан с вашим javascript (и jQuery поддерживаемый Microsoft!)

Ответ 6

Вы не говорите, какую версию используемой платформы .NET вы используете.

Если вы используете v2.0 или выше, вы можете использовать свойство OnClientClick для выполнения функции Javascript при поднятии кнопки onclick.

Все, что вам нужно сделать, чтобы предотвратить последующий возврат сервера, - это возврат false из вызываемой функции JavaScript.

Ответ 7

ASP.NET всегда генерирует asp:Button как input type=submit.
Если вы хотите кнопку, которая не делает сообщение, но для элемента на стороне сервера требуется некоторый элемент управления, создайте простой ввод HTML с атрибутами type=button и runat=server.

Если вы отключите действия с кликом, сделав OnClientClick=return false, он ничего не сделает по щелчку, если вы не создадите такую ​​функцию, как:

function btnClick() {
    // do stuff
    return false;
}

Ответ 8

дополнительно для принятого ответа вы можете использовать UseSubmitBehavior = "false" MSDN

Ответ 9

С проверкой

В этом примере я использовал два элемента управления ddl и txtbox, имеет счастливое кодирование

 asp:ScriptManager ID="script1" runat="server" /asp:ScriptManager

    asp:UpdatePanel ID="Panel1" runat="server"
       ContentTemplate

// ASP BUTTON
asp:Button ID="btnSave" runat="server" Text="Save" class="btn btn-success" OnClientClick="return Valid()" OnClick="btnSave_Click"


   /ContentTemplate    
    /asp:UpdatePanel    

  <script type="text/javascript">
        function Valid() {

            if ($("#ctl00_ContentPlaceHolder1_YOUR CONTROL NAME").val() == 0) {
                alert("Please select YOUR TEXT");
                $("#ctl00_ContentPlaceHolder1_YOUR CONTROL NAME").focus();
                return false;
            }

            if ($("#ctl00_ContentPlaceHolder1_YOUR CONTROL NAME").val().length == 0) {
                alert("Please Type YOUR TEXT");
                $("ctl00_ContentPlaceHolder1_YOUR CONTROL NAME").focus();
                return false;
            }
            return true;
        }
</script>

Ответ 10

В моем случае я решил добавить return в onClientClick:

Код за

function verify(){
  if (document.getElementById("idName").checked == "") {
    alert("Fill the field");
    return false;
  }
}

Конструктивная поверхность

<asp:Button runat="server" ID="send" Text="Send" onClientClick="return verify()" />

Ответ 11

вы можете использовать код:

<asp:Button ID="Button2" runat="server"
     Text="Pulsa"
     OnClientClick="this.disabled=true"
     UseSubmitBehavior="False"/>

Ответ 12

Вы можете использовать JQuery для этого

<asp:Button runat="server" ID="btnID" />

чем в JQuery

$("#btnID").click(function(e){e.preventDefault();})