简体   繁体   中英

Displaying a div when button is clicked Javascript

My goal is to display a div with a successfull message when the Save button is clicked. Unfortunately, all I managed to do is display this message everytime the page is loaded..

Here is my code :

<div id="fadeDiv">
    <p>Content saved !</p>
</div>

$(document).ready(function () {
    $('#fadeDiv').fadeIn(1000);
    setTimeout(function () { $('#fadeDiv').fadeOut(1000); }, 1000);
});

I tried to do

$('#saveBtn").click(...);

but when I click on the button, the page is reload even if I don't have a Response.Redirect() so my div is not displayed.

Thanks for your help

This solution hides the button at the beginning.

 $("#saveBtn").click(function () { $('#fadeDiv').fadeIn(1000); setTimeout(function () { $('#fadeDiv').fadeOut(1000); }, 1000); });
 <div id="fadeDiv" style="display:none"> <p>Content saved !</p> </div> <button id="saveBtn"> Save! </button>

Please refer the below link and try with your own.

Click here

and let me know if you want any assist.

There is the solution to your problem 1.Here is our html

    <div id="fadeDiv">
      <p>Content saved !</p>
    </div>
   <button id="saveBtn">Show</button>

2.Jquery Code

$(document).ready(function(){
     $("#fadeDiv").hide();
      $("#saveBtn").click(function(){
        $("#fadeDiv").show();
      });
    });

Explanation of problem solution. 1.html structure is same as yours,solution is in there jquery code.

A. This line $("#fadeDiv").hide(); hides the div when we arrive first time on our page.

B. And this code will run when we click the save button
$("#saveBtn").click(function(){

});.

C.the last thing ,this line $("#fadeDiv").show(); will show the hidden div.

To re-create what you'd like to do, I created an HTML with a hidden div that has the message to be displayed within a red bordered div on successful save. Note that the button is outside the div.

Secondly, I created a simple JavaScript function that triggers the display of the div and hides the save button.

 function ShowHideDiv() { //show div when button is clicked document.getElementById("myDiv").style.display = "block"; //hide save button after click document.getElementById("saveButton").style.display = "none"; }
 <div id="myDiv" style="display: none; border-style: solid; border-width:thick; border-color:red;"> <p> Hey..!! <br><br>Your Content saved!! :)</p> </div> <button onclick="ShowHideDiv()" id = "saveButton">Save Button</button>

I hope it's what you're trying to achieve.

Cheers!

Thank you all for your fast answers ! I manage to do it !

So I put my button in an asp UpdatePanel to avoid the fact that when it was clicked, the page was reloaded. After that I add a RegisterStartupScript in the C# function called when the button was clicked. Finally, the RegisterStartupScript is simply calling the Javascript function that manage the display of my message.

Here is the code :

HTML

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="saveBtn" runat="server" Text="Save" OnClick="saveBtn_Click"/>
    </ContentTemplate>
</asp:UpdatePanel>
<div id="fadeDiv" style="display: none">
    <p id="saveMsg">Content saved</p>
</div>

C#

protected void saveBtn_Click(object sender, EventArgs e)
{
    // ...
    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "call", "displaySaveMsg();", true);
}

Javascript

function displaySaveMsg() {
    $('#fadeDiv').fadeIn(1000);
    setTimeout(function () { $('#fadeDiv').fadeOut(1000); }, 1000);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM