programing

ASP 버튼(시스템)의 포스트백을 무효로 하는 방법.Web.UI. WebControls.버튼)

goodcopy 2023. 3. 19. 21:18
반응형

ASP 버튼(시스템)의 포스트백을 무효로 하는 방법.Web.UI. WebControls.버튼)

ASP 버튼이 있어요.서버 쪽이기 때문에 로그인한 사용자에게만 표시할 수 있지만 javascript 기능을 실행했으면 좋겠고 runat="server"일 때는 항상 포스트백 이벤트를 호출하는 것 같습니다.

단골 버튼도 있어요.<input...>) 서버에서 실행되고 있지 않고 정상적으로 동작하고 있습니다.

어떻게 하면 이 버튼을 javascript만 실행하고 postback은 실행하지 않게 할 수 있을까요?

Javascript가 완료되면 false를 반환하도록 하십시오.

<asp:button runat="server".... OnClientClick="myfunction(); return false;" />
YourButton.Attributes.Add("onclick", "return false");

또는

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

jquery 클릭 액션을 사용하여 prevent Default() 함수를 사용하여 포스트백을 회피할 수 있습니다.

<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를 반환하기 위해 콜백이 필요한 것은 맞지만, 저는 클릭을 설정해서 콜백을 하는 것은 추악한 오래된 방법이라고 덧붙이고 싶습니다.에 띄지 않는 Javascript를 읽을 것을 권장합니다.jQuery와 같은 라이브러리를 사용하면 생활을 더 쉽게 할 수 있고 HTML을 javascript와 덜 결합할 수 있습니다(그리고 jQuery는 현재 Microsoft에서 지원됩니다).

ASP.NET은 항상 생성한다.asp:Button로서input type=submit.
투고는 하지 않지만 서버측 요소에 대한 제어가 필요한 버튼을 원하는 경우 속성을 가진 간단한 HTML 입력을 작성하십시오.type=button그리고.runat=server.

클릭 액션을 디세블로 하는 경우OnClientClick=return false, 다음과 같은 함수를 만들지 않는 한 클릭으로 아무것도 할 수 없습니다.

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

의 어떤 버전인지는 말하지 않습니다.사용하고 있는 NET 프레임워크.

v2.0 이상을 사용하는 경우 버튼의 온클릭 이벤트가 발생할 때 OnClientClick 속성을 사용하여 Javascript 기능을 실행할 수 있습니다.

서버 포스트백 발생을 방지하기 위해 필요한 것은 반환뿐입니다.false호출된 JavaScript 함수에서 가져옵니다.

또한 승인된 답변의 경우 UseSubmitBehavior="false" MSDN을 사용할 수 있습니다.

제 경우 onClientClick에서 반품 추가를 해결했습니다.

코드 이면

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

설계 표면

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

코드를 사용할 수 있습니다.

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

제출하지 않으면

...
<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>

검증 포함

이 예에서는 2개의 컨트롤을 사용했습니다.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();})

False를 반환하기만 하면 됩니다.

function jsFunction() {
  try {
    // Logic goes here
    return false; // true for postback and false for not postback
  } catch (e) {
    alert(e.message);
    return false;
  }
}
<asp:button runat="server" id="btnSubmit" OnClientClick="return jsFunction()" />

JavaScript는 다음과 같이 기능합니다.

주의*: JavaScript 함수에서 잘못된 계산을 방지하기 위해 항상 try-catch 블록을 사용하고 catch 블록에서 false를 반환하십시오.

언급URL : https://stackoverflow.com/questions/683746/how-to-disable-postback-on-an-asp-button-system-web-ui-webcontrols-button

반응형