首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止页面刷新以在页面上保留成功消息

问防止页面刷新以在页面上保留成功消息
EN

Stack Overflow用户
提问于 2012-11-29 10:16:49
回答 2查看 966关注 0票数 0

我有一个表单,在用户通过提交按钮发送消息后,给出一个‘成功发送’的消息。

但是一秒钟后,包含表单的原始页面将再次显示,因为submit会刷新页面。

代码是:

代码语言:javascript
复制
<label id="success" style="visibility:   hidden">Your request has been sent successfully</label>
<form method="post" id="messege" onsubmit="return checkAnswer()" style="font-size: medium; margin-top: 10%" dir="rtl">
<div class="clear"></div>
        <div class="content_item">


            <br><br>
          <div style="width:170px; float: right;">name</div>
          <div style="width:430px; float:left;"><p><input class="contact" type="text" id="your_name" value="" /></p></div>
            <br><br><br><br><br>
          <div style="width:170px; float:right;">email</div>
          <div style="width:430px; float:left;"><p><input class="contact" type="text" id="your_email" value="" /></p></div>
            <br><br><br>
          <div style="width:170px; float:right;">the messege</div>
          <div style="width:430px; float:left;"><p><textarea class="contact textarea" rows="8" cols="50" id="your_message"></textarea></p></div>
          <br style="clear:both;" />
</div>
</form> 

javascript函数是:

代码语言:javascript
复制
<script type="text/javascript">

    function checkAnswer() {
        var name = document.getElementById("your_name").value;
        if (name == "") {
            alert("!!! insert name");
            return false;
        }
        var email = document.getElementById("your_email").value;
        if (email == "") {
            alert("!!! insert mail");
            return false;
        }
        var message = document.getElementById("your_message").value;
        if (message == "") {
            alert("!!! insert massege");
            return false;
        }
        var ans = parseInt(document.getElementById("user_answer").value);
        if (ans != 12) {
            alert("!!! wrong answer");
            return false;
        }
        else {
            document.getElementById("success").style.visibility = 'visible';
            document.getElementById("messege").style.visibility = 'hidden';

            return true;
        }

    }

asp.net代码是:

代码语言:javascript
复制
@{
    var db = Database.Open("MyProjectSite");

    var name="";
    var email="";
    var message="";
    var answer="";

     if(IsPost)
    {
        name=Request.Form["your_name"];
        email=Request.Form["your_email"];
        message=Request.Form["your_message"];
       var insertMessege="INSERT INTO messegesFromCustomers(name,email,content,isCustomer)"+"VALUES (@0,@1,@2,@3)";
       db.Execute(insertMessege,name,email,message,"לא");
       db.Close();
    }

}

刷新也会删除我的成功消息。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 10:55:52

在您的情况下,使用此函数的最简单方法是添加一个url标志来表示成功提交,然后在页面加载时检查并显示确认消息,而不是在页面提交之前,因为的状态未保存(如您所见)。

票数 0
EN

Stack Overflow用户

发布于 2012-11-29 10:52:01

如果您想提交这样的表单而不刷新页面,我认为您需要使用Ajax。页面提交表单的唯一方法是刷新,除非您以其他方式将数据发送到ASP.net代码...一种方法是使用Ajax。(另一种是使用iframe,但Ajax可能是更好的选择)。

看看这个链接:

http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

它展示了如何使用ajax (通过jQuery)在不刷新页面的情况下提交表单。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13617797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档