【问题标题】:ASP.Net Script Controls, Returning False from OnClick, and FireFoxASP.Net 脚本控件,从 OnClick 和 FireFox 返回 False
【发布时间】:2010-09-25 09:09:58
【问题描述】:

简短说明:

我有一个脚本控件,它在脚本文件中处理了单击事件。 Click 处理程序弹出确认提示并返回提示的值。

问题:

IE 看到返回 False(在确认框中选择了取消)并且没有回发。 Firefox 会忽略这一点并触发回发。

解决方案?:

我读到如果我以老式的方式做这件事,我需要:

onClick="return SomeMethod();"

在标记中。希望有一种方法可以使用脚本控件来做到这一点?

示例:

这是我在脚本文件中的内容:

//THIS IS THE METHOD CLICK CALLS
handleLnkDeleteButtonClick: function(e)
{
    var confirmed = confirm('This will delete the current Message category and move all messages to the Oprhan cataegory.  Continue?');
    return confirmed;
},

initialize: function()
{
    this._lnkDeleteButton = $get(this._lnkDeleteButtonID);
    this._lnkDeleteButton.idpicker = this;

    //HOOK BEGINS HERE
    this._lnkDeleteButtonClick = Function.createDelegate(this, this.handleLnkDeleteButtonClick);
    $addHandler(this._lnkDeleteButton, "click", this._lnkDeleteButtonClick);
    //END HOOK HERE

    NDI.WebControls.Client.PersonalMessageTypePicker.callBaseMethod(this, 'initialize');
},

dispose: function()
{
    $removeHandler(this._lnkDeleteButton, "click", this._lnkDeleteButtonClick);
    NDI.WebControls.Client.PersonalMessageTypePicker.callBaseMethod(this, 'dispose');
}

【问题讨论】:

    标签: asp.net javascript firefox scriptcontrol


    【解决方案1】:

    好吧,在尝试为谷歌正确表述事情的时间太多后,我自己解决了这个问题。原来有一个方法可以调用,这样你就不必担心返回 true 或 false。

    handleLnkDeleteButtonClick: function(e)
    {
        var confirmed = confirm('This will delete the currery Message category and move all messages to the Oprhan cataegory.  Allow?');
        if (!confirmed)
        {
            e.preventDefault();
        }
    },
    

    所以我不必返回确认,只需检查它的值并调用 e.preventDefault 方法来阻止点击触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-22
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      相关资源
      最近更新 更多