单击按钮(双击)后,避免打开表单两次

时间:2012-03-25 16:14:41

标签: jquery jquery-ui

我正在寻找避免表格被打开两次的方法。有时,用户可能偶然点击两次按钮>> jQuery表单打开两次。 如何避免这种情况?

这是我的按钮:

<a class="dialogLink MaterialNew ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button" aria-disabled="false" href="/PLATON/Material/_MaterialEditNew?requestID=10" data-update-url="/PLATON/Material/_MaterialList?requestID=10" data-update-target-id="MaterialList" data-dialog-title="Ajouter un matériel à transporter" data-dialog-id="MaterialNew">

单击此按钮,打开jQuery UI表单。

该按钮具有类.MaterialNew

表单(如果存在)的id为#MaterialNew

感谢您的帮助。


更新

这是我的解决方案,但我对此并不满意。

// Flag to avoid form to be loaded twice
var formLoaded;

// Wire up the click event of any current or future dialog links
$('.dialogLink').live('click', function () {

    if (formLoaded)
        return false;
    else
        formLoaded = true;
    ....

    $(dialogDiv).load(this.href, function () {
        $(this).dialog({
            modal: true,
            close: function () { $(this).dialog('destroy').remove(); formLoaded = false; },
            ...

正如您在上面所看到的,我使用了一个标志来检查表单是否已经加载。我不满足于这个解决方案,这是我的看法。也许更好的解决方案可能吗?

感谢。

2 个答案:

答案 0 :(得分:2)

单击时,只需在其上设置disabled即可。这样可以防止双击,因为第二次点击会触发一个禁用的控件。

答案 1 :(得分:1)

有同样的问题:单击按钮后,表单在IE中打开两次。 只需添加“返回false”;加载表单后的声明就行了。