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
'programing' 카테고리의 다른 글
사전에서 문자열 키를 int로 변환 (0) | 2023.03.29 |
---|---|
Ionic - 로그인 페이지에서만 sidemenu를 제거하는 방법 (0) | 2023.03.29 |
Keycloak 각도 'Access-Control-Allow-Origin' 헤더가 없습니다. (0) | 2023.03.19 |
타이프스크립트에서 오브젝트 속성을 결합하는 방법 (0) | 2023.03.19 |
Oracle에서 테이블 크기를 계산하는 방법 (0) | 2023.03.19 |