我有以下javascript函数:
function makefieldlonger(element) {
element.style.width = "550px";
}
我用这样的RadTextBox控件调用它:
<telerik:RadTextBox ID="txtSubject" runat="server" EnableEmbeddedSkins="false"
Skin="Default" Width="255px" onclick="makefieldlonger(this)"/>
这样可行,但我想在onfocus事件中发生这种情况,所以我会执行以下操作:
<telerik:RadTextBox ID="txtSubject" runat="server" EnableEmbeddedSkins="false"
Skin="Default" Width="255px" onfocus="makefieldlonger(this)"/>
但它拒绝在页面上调整其大小。 它确实调用了javascript函数(我通过在函数中添加一个警报来测试它并且它被调用了。)
所以问题是:为什么这个函数适用于onclick事件但不适用于onfocus事件?
答案 0 :(得分:4)
<强> ASPX 强>
<telerik:RadTextBox ID="txtSubject" runat="server" EnableEmbeddedSkins="false" Skin="Default" Width="255px" >
<ClientEvents OnFocus="makefieldlonger" />
</telerik:RadTextBox>
或者您可以使用 ClientEvents-OnFocus
属性将该功能设置为@ Blade0rz comment
<强>的JavaScript 强>
<script type="text/javascript">
function makefieldlonger(sender, eventArgs)
{
sender._element.style.width = "550px";
}
</script>
答案 1 :(得分:3)
看起来OnFocus
需要两个参数。我怀疑你的函数中的element
是指事件参数。
尝试此操作(我将其设为ClientEvent
):
<telerik:RadTextBox ID="txtSubject" runat="server" EnableEmbeddedSkins="false" Skin="Default" Width="255px">
<ClientEvents OnFocus="makefieldlonger" />
</telerik:RadTextBox>
然后你的功能是:
function makefieldlonger(sender, eventArgs) {
sender.style.width = "550px";
}
答案 2 :(得分:0)
尝试使用OnBlur()函数。您正在更改该文本框的Focus事件上可能导致此错误的文本框大小。使用Onblur,以便当控件离开Textbox onblur时将触发,文本框将被更改