只在jQuery中执行一次动作

时间:2010-07-19 22:18:40

标签: jquery ajax jquery-ui asp.net-mvc-2

我正在使用jQuery UI并尝试禁用数据组中的所有文本框,但每次加载选项卡时才会执行此操作。以下是我到目前为止的情况:

$(function () {
        $("#tabs").tabs({
            cache: true,
            load: function (event, ui) {
                $(".data-group").one('load', function () {
                    $(this).find(':text').attr('disabled', 'disabled');
                });
            },
            select: function (event, ui) {
                // Do Stuff
            }
        });
    });

结果是我可以启用文本框(通过界面),输入数据,但是当我从选项卡切换回来并切换回来时,值就在文本框中(如果出现则显示验证消息)是数据中的错误),但所有框都被禁用。

解决此问题的建议?

2 个答案:

答案 0 :(得分:0)

尝试绑定到show事件,类似于“如果至少有一个文本输入中有数据然后启用它们”,例如:

show: function(event, ui) {
    if($(".data-group").find(":text[value]").length) {
        $(".data-group").find(":text").removeAttr("disabled");
    }
}

答案 1 :(得分:0)

我最终通过缓存标签来解决这个问题,因此它们只加载一次。然后,我启用相应的文本框。从那时起,用户的操作将确定是否启用了其他框。