【问题标题】:Clear fields on browser's back button清除浏览器后退按钮上的字段
【发布时间】:2016-03-07 13:07:06
【问题描述】:

我使用以下 Javascript 代码禁用了浏览器的后退按钮。 它可以工作,但我想要一个代码来清除我表单上的所有字段,或者至少通过浏览器的后退按钮单击重新加载我的页面。我正在使用 c#。

感谢任何帮助。谢谢。

  function DisableBackButton() {
      window.history.forward()
  }
  DisableBackButton();
  window.onload = DisableBackButton;
  window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() }
  window.onunload = function () { void (0) }



我已经尝试过这样做。但是不行

 Protected void Page_Load(object sender, EventArgs e)
        {
            tbPs.Text = " ";
            tbName.Text = " ";
            tbEmail.Text = " ";
            tbContact.Text = " ";
            tbSug.Text = " ";
            rbTheme3.Checked = true;
            rbFoodVar3.Checked = true;
            rbTransport3.Checked = true;
            rbLoc3.Checked = true;
            rbTime3.Checked = true;
        }

【问题讨论】:

  • 您的表单包含什么?只有文本框?还是选择框?
  • @AmmarHasan 文本框和单选按钮
  • 文本框可以轻松清除,但对于单选按钮,是否有任何默认值?
  • 是的,让我们对我想要的每个按钮组都说不。 3 单选按钮选中。 @AmmarHasan
  • 将您的清除代码放入卸载函数中

标签: javascript c# jquery asp.net


【解决方案1】:

unload函数内的javascript中这样做

对于文本框

$('input:text').val('');

对于复选框

$('input:checkbox').prop('checked', false);

对于单选框

var radioGroups = [];

$("input:radio").each(function(){
    if (radioGroups.indexOf(this.name) > -1) { return; }
    radioGroups.push(this.name);
});

radioGroups.forEach(function (groupName) {
   var $group = $('input[name="' + groupName + '"]:radio');
   $group.prop('checked', false);
   // if you want to select the third one
   $group[2] && $($group[2]).prop('checked', true);
});

【讨论】:

    【解决方案2】:

    试试这个..

    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now);
    

    以上代码将禁用页面缓存。由于页面没有在浏览器上缓存,当用户点击返回按钮时页面将被重新加载。

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      相关资源
      最近更新 更多