我有这个带有类名ruButton& amp;的telerik按钮。 ruBrowse,在DOM中加载了一点。 我正在尝试更改页面加载时按钮的值。
以下代码在页面加载时不起作用,但如果附加到另一个按钮单击事件,则可以正常工作。
$(document).ready(
function(){
$(".ruButton.ruBrowse").attr('value', 'Browse');
}
);
按钮的HTML DOM看起来像这样。
<INPUT class="ruButton ruBrowse" value=Select type=button>
如何在页面加载中使用它?
答案 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');
);