Как отключить обратную передачу на кнопку asp
У меня есть кнопка asp. Это серверная часть, поэтому я могу показать ее только для зарегистрированных пользователей, но я хочу, чтобы она запускала функцию javascript, и кажется, что когда она runat="server", она всегда вызывает событие обратной передачи.
У меня также есть обычная кнопка (<input...>) не работает на сервере, и он отлично работает...
Как я могу заставить эту кнопку запускать только javascript, а не обратную передачу?
12 ответов:
пусть ваш javascript вернет false, когда это будет сделано.
<asp:button runat="server".... OnClientClick="myfunction(); return false;" />
YourButton.Attributes.Add("onclick", "return false");или
<asp:button runat="server" ... OnClientClick="return false" />
вы можете использовать jQuery click action и использовать preventDefault () чтобы избежать обратной передачи
<asp:button ID="btnMyButton" runat="server" Text="MyButton" /> $("#btnMyButton").click(function (e) { // some actions here e.preventDefault(); }
рассмотреть этот вопрос.
<script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest); function BeginRequest(sender, e) { e.get_postBackElement().disabled = true; } </script>
другие правы, что вам нужно, чтобы ваш обратный вызов возвращал false; однако я хотел бы добавить, что делать это, установив onclick, - это уродливый старый способ делать вещи. Я бы рекомендовал прочитать о ненавязчивый javascript. Использование библиотеки, как jQuery может сделать вашу жизнь проще, а HTML менее связан с вашим javascript (и jQuery поддерживается Microsoft сейчас!)
вы не говорите, какую версию .NET framework вы используете.
Если вы используете v2. 0 или выше, вы можете использовать свойство OnClientClick для выполнения функции Javascript при возникновении события onclick кнопки.
все, что вам нужно сделать, чтобы предотвратить сервер обратной передачи происходит возврат
falseиз вызываемой функции JavaScript.
ASP.NET всегда генерировать
asp:Buttonкакinput type=submit.
Если вы хотите кнопку, которая не делает сообщение, но нужен некоторый контроль для элемента на стороне сервера, создайте простой HTML-вход с атрибутамиtype=buttonиrunat=server.если вы отключите кнопку действия делать
OnClientClick=return false, он ничего не будет делать по щелчку, если вы не создадите функцию, такую как:function btnClick() { // do stuff return false; }
дополнительно для принятого ответа вы можете использовать UseSubmitBehavior= " false" MSDN
в моем случае я решил добавить возврат в 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()" />
вы можете использовать этот код:
<asp:Button ID="Button2" runat="server" Text="Pulsa" OnClientClick="this.disabled=true" UseSubmitBehavior="False"/>Если nee submit
... <form id="form1" runat="server" onsubmit="deshabilita()"> ... <script type="text/javascript"> function deshabilita() { var btn = "<%= Button1.ClientID %>"; if (confirm("Confirme postback")) { document.getElementById(btn).disabled = true; return true; } return false; } </script>
При Проверке
В этом примере я использовал два элемента управления,
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>
Вы можете использовать JQuery для этого
<asp:Button runat="server" ID="btnID" />чем в JQuery
$("#btnID").click(function(e){e.preventDefault();})
Comments