【问题标题】:Firefox unexpectedly resets formFirefox 意外重置表单
【发布时间】:2016-05-10 01:01:51
【问题描述】:

在“重置”“确认”窗口中按“取消”时,Firefox 正在清除表单。试过了:

<input class="grow" type="reset" name="reset" id="res" onclick="confirm('reset?')">

还有:

$('#res').on('click',function(){
    var c = confirm('Reset the data?');
    if(c==true){
        $( ".counter" ).text( q  + " of " + n.length );
    }
});

两者都可以在 Chrome 和 Safari 中正常工作。

【问题讨论】:

  • 你永远不会取消按钮的默认行为,所以它自然会发生。
  • 你说错了。我只想确认,而不是改变自然行为,例如将其设置为“提交”按钮。
  • confirm() 函数与&lt;input type="reset"&gt; 没有任何关系。如果您从按钮的onclick 调用此函数,则不会神奇地确认或取消按钮的行为。您可以改为调用alert()prompt(),这将产生相同的效果(即没有效果)。如果你想有条件地取消一个 HTML 元素的默认行为,你应该do so explicitly
  • 谢谢!但是我有点完全理解,因为如果在确认之前放置“返回”,它就可以工作。
  • T.J. Crowder comments 为什么有效。

标签: html forms firefox reset


【解决方案1】:

你没有对返回值做任何事情。试试:

<input class="grow" type="reset" name="reset" id="res" onclick="return confirm('reset?')">

jQuery 版本也是这样:

$('#res').on('click',function(){
    var c = confirm('Reset the data?');
    if(c==true){
        $( ".counter" ).text( q  + " of " + n.length );
    }
    return c;
});

【讨论】:

  • 谢谢!我认为“确认”是一个自动返回布尔值的实用程序。老实说,我不完全理解这一点。
猜你喜欢
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多