4

我项目中的页面基于母版页和内容页...

我想在所有主元素和内容元素都加载完成后,在一个内容页面中使用 javascript(而不是 jquery)做一些事情 (例​​如,将焦点设置在 RadComboBox 控件上)

为此,我使用了以下代码:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

    <script src="../JQuery/jquery-1.4.1.js" language="javascript" type="text/javascript"></script>


    <script type="text/javascript">

        onload = onloadOfDocument;

        function onloadOfDocument() {

            var combo = $find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>");
            alert(combo);
            var comboInput = combo.get_inputDomElement();
            comboInput.focus();
        }

    </script>
</asp:Content>

alert(combo);总是返回null。($find代码是用于telerik控件的,关于telerik控件的上层代码是完全正确的)

为了解决这个null问题,我测试了如下所示的方法:

1-我从主页面和内容页面中删除了所有控件,除了 RadComboBox 控件和空问题消失了,所以我得出空问题是关于主页面和内容页面的所有元素都没有被加载时

$find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>");

被解雇。

2-所以我用

$(document).ready(function() { my codes });

代替

onload = onloadOfDocument;

但问题没有解决 - 我不知道为什么!

3-最后我测试了下面的代码,它完美地工作:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

<script src="../JQuery/jquery-1.4.1.js" language="javascript" type="text/javascript"></script>


<script type="text/javascript">

    //onload = onloadOfDocument;
      document.onkeyup = onkeyupOfDocument;

    function onkeyupOfDocument() {

        var combo = $find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>");
        alert(combo);
        var comboInput = combo.get_inputDomElement();
        comboInput.focus();
    }

</script>

在所有 MASTER 和 CONTENT ELEMENTS 完全加载后,我应该使用什么文档功能来执行一些 javascript 代码?

在未来提前感谢

4

2 回答 2

1

下面的链接解决了我的问题: $(document).ready() 和 pageLoad() 不一样!

我的答案-> 使用 pageLoad() 而不是 $(document).ready()

于 2011-05-15T01:21:56.560 回答
0

会不会是:

var combo=$("#<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>")[0];

?

(假设RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID解析为 DOM 中元素的 id 属性)

于 2010-07-22T08:17:29.070 回答