如何在使用jQuery在DOM中加载后更改输入按钮的值

时间:2011-08-24 12:23:50

标签: jquery button load

我有这个带有类名ruButton& amp;的telerik按钮。 ruBrowse,在DOM中加载了一点。 我正在尝试更改页面加载时按钮的值。

以下代码在页面加载时不起作用,但如果附加到另一个按钮单击事件,则可以正常工作。

$(document).ready(
function(){
$(".ruButton.ruBrowse").attr('value', 'Browse');
}
);

按钮的HTML DOM看起来像这样。

<INPUT class="ruButton ruBrowse" value=Select type=button>

如何在页面加载中使用它?

5 个答案:

答案 0 :(得分:0)

究竟它加载到DOM中的“迟到”程度如何?它是如何加载的?

这是一个很长的镜头,即使它解决了它,也不是最好的解决方案,但是:

$(document).ready(function() {
    $(document).change(function() {
        $(".ruButton .ruBrowse").attr('value', 'Browse');
    });
});

编辑:

看到您更新了问题,可以尝试以下内容......

改变你的加价,如下:

<input class="ruButton ruBrowse" value="Select" type="button">

我将假设button类型是Telerik的东西,并保持原样。

现在,稍微调整你的jQuery(我注意到选择器中的类名之间没有空格,这似乎是一个问题):

$(document).ready(function() {
   $(".ruButton .ruBrowse").attr('value', 'Browse');
});

答案 1 :(得分:0)

你写道:“我有这个带有类名ruButton&amp; ruBrowse的telerik按钮,它在DOM中加载了一点”。

如果它在dom中加载很晚,唯一可靠的方法就是使用它自己提供的回调。如果它没有提供的回调,你必须猜测。你可以在这样的计时器上加载它:

$(document).ready(function() {
    setTimeout(function() {
        $(".ruButton.ruBrowse").attr('value', 'Browse');
    }, 400);
});

[以上示例在尝试更改按钮之前,在dom加载后等待400毫秒]。

您也可以考虑使用$(window).load(...)来等待dom,而不是等待整个页面加载。

但是再一次,猜测真的很糟糕,至少在某些时候可能会出错,而且对于生产质量的代码来说肯定不够好。如果库没有提供它自己的回调,请破解库或使用另一个库。

答案 2 :(得分:0)

我只是想到了另一个解决方案,即使你不知道按钮加载需要多长时间也是可靠的(事实证明,为你工作的1毫秒计时器可能只是猜测) 。你只需要反复运行一个计时器来检查它们是否全部被加载,如下所示:

var wait_for_telerik_buttons = function() {
    if ($("input[type='button']").length === $('ruButton.ruBrowse').length) {
        $(".ruButton.ruBrowse").attr('value', 'Browse');
    } else {
        setTimeout(wait_for_telerik_buttons, 100);
    }
};
setTimeout(wait_for_telerik_buttons, 20);

不能说它是最有效的方法,但是如果你的第一个猜测是好的(在上面的例子中是20毫秒)那么它通常会在第一次捕获它。但是如果在任何特定情况下猜测都很糟糕,那么有一个100毫秒的定时器循环。比赛条件得到解决。

答案 3 :(得分:0)

Telerik文件上传按钮值可以通过使用Telerik的本地化支持本身进行更改。 在我意识到这一点之前,我不得不使用javascript进行入侵。

<telerik:RadUpload ID="RadUpload" runat="server" TargetFolder="..\..\Upload" MaxFileInputsCount="1">
                 <Localization Select="Browse" />
            </telerik:RadUpload>

Locatlization Select = Browse以正确的方式完成工作。如果没有此选项,Javascript可以解决问题。

答案 4 :(得分:-2)

您也可以使用此

$(document).ready( $(".ruButton.ruBrowse").val('Browse'); );