ASP.Net脚本控件,从OnClick和FireFox返回False

时间:2008-12-04 17:33:18

标签: asp.net javascript firefox scriptcontrol

简短说明:

我有一个脚本控件,在脚本文件中处理click事件。 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');
}

1 个答案:

答案 0 :(得分: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方法来停止点击,而不是返回确认。