javascript无法使用runat

时间:2012-07-30 09:19:00

标签: javascript asp.net runat

我将从HTML TextArea中获取值,它完全正常工作,直到我在控件上放置runat =“server”。

<script language="javascript" type="text/javascript" >
    function limitText(limitField, limitCount, limitNum) {
        if (limitField.value.length > limitNum) {
            limitField.value = limitField.value.substring(0, limitNum);
        } else {
            limitCount.value = limitNum - limitField.value.length;
        }
    }
</script>

那么这就是身体

 <div runat="server">
    <%-- Note:Set runnat="server" --%>

    <textarea runat="server" name="limitedtextarea" id="Area" onkeydown="limitText(this.form.limitedtextarea,this.form.countdown,100);"
        onkeyup="limitText(this.form.limitedtextarea,this.form.countdown,100);" >

我试图将(textArea)值放入变量中,然后在标签上显示

我真的很感谢你的帮助..谢谢..

3 个答案:

答案 0 :(得分:1)

当您使用runat=server进行任何控制服务器端控制时,该控制的ID将更改, 现在,您可以使用ClientID(例如

)在Javascript中获取服务器端控件ID
document.getElementById('<%=Area.ClientID%>')

答案 1 :(得分:0)

当您添加runat="server"时,它将更改其中的表单元素的名称,并且您依赖于具有命名元素的表单:

this.form.limitedtextarea

对于文本字段,您可以只传递this,对于countdown,您可以使用ID:

onkeydown="limitText(this,document.getElementById('countdowntimer'),100);"

答案 2 :(得分:0)

您可以使用this关键字直接发送控件引用,并在javascript函数中使用该引用值来检查限制。通过这个,您可以使用与其他控件相同的函数。

<textarea runat="server" name="limitedtextarea" id="Area" 
    onkeydown="limitText(this,this.form.countdown,100);"         
    onkeyup="limitText(this,this.form.countdown,100);" >

    <script language="javascript" type="text/javascript" >     
       function limitText(limitField, limitCount, limitNum) 
       {         

          if (limitField.value.length > limitNum) 
          {             
            limitField.value = limitField.value.substring(0, limitNum);         
          } 
          else 
          {             
            limitCount.value = limitNum - limitField.value.length;         
          }     

      } 
    </script>