2

我有以下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 事件无效?

4

3 回答 3

4

ASPX

<telerik:RadTextBox ID="txtSubject" runat="server" EnableEmbeddedSkins="false" Skin="Default" Width="255px" >
    <ClientEvents OnFocus="makefieldlonger" />
</telerik:RadTextBox>

或者您可以使用ClientEvents-OnFocus属性将功能设置为@Blade0rz 注释

JavaScript

<script type="text/javascript">
    function makefieldlonger(sender, eventArgs)
    {
        sender._element.style.width = "550px";
    }
</script>

REF:用于 ASP.NET AJAX 文档的 RadControls

于 2013-05-29T07:56:22.000 回答
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";
}

取自Telerik RadTextBox 文档

于 2013-05-29T07:57:39.217 回答
0

尝试使用 OnBlur() 函数。您正在更改该文本框的焦点事件上的文本框大小,这可能会导致此错误。使用 Onblur 以便当控制离开时文本框 onblur 将触发并且文本框将被更改

于 2013-05-29T07:54:48.263 回答