帮助JavaScript和文本区域

时间:2011-03-07 23:53:17

标签: javascript asp.net html

嘿我来自textarea的文字没有显示在我的contentplaceholder中的div区域。

我的javascript可能有任何一条建议吗?

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="css/Style.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $('button').click(function () {
        var x = $('textarea').val();
        $('div').html(x);
    });
</script>

<textarea style="border: 0" cols="77" rows="5"></textarea>
<button>Post Message</button>

<div></div>
</asp:Content>

2 个答案:

答案 0 :(得分:4)

当脚本运行时,该按钮不在DOM中。

<script type="text/javascript">
    $(function() {
      $('button').click(function () {
        var x = $('textarea').val();
        $('div').html(x);
      });
    });
</script>

这将告诉jQuery在DOM准备好之前保持该初始化函数。在这种情况下,您的函数将被调用。

或者,您可以将脚本块移动到<body>的末尾,但这有点déclassé

故事是,只要浏览器看到整个<script>元素,就会运行脚本。当你把脚本放在这样的顶部时,还没有任何<button>元素,因为浏览器还没有在文档中做到那么远。

答案 1 :(得分:2)

详细说明Pointy的答案,将脚本移到

下面
</div>

或将你的代码包装在一个init()函数中,你可以通过一个onload从body标签中调用...

<script>
    function whateverIwantToHappenWhenTheDomLoads(){
     //put your code here

}

</script>

<body onload="whateverIwantToHappenWhenTheDomLoads()">

...