javascript无法使用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)的值放入一个变量中,然后将其显示在标签上

我真的很感激你的帮助。。谢谢

当您使用runat=server进行任何控制服务器端控制时,该控件的ID就会发生更改,现在,您可以使用类似的ClientID在Javascript中获得服务器端控制ID

document.getElementById('<%=Area.ClientID%>')

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

this.form.limitedtextarea

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

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

您可以使用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> 

最新更新