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) в переменную, а затем показать его на этикетке

я очень ценю вашу помощь.. спасибо..

3 ответа

Когда вы делаете какой-либо элемент управления на стороне сервера с помощью runat=server затем изменился идентификатор этого контроллера, теперь вы можете получить идентификатор элемента управления на стороне сервера в Javascript, используя ClientID, например

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

Когда вы добавляете runat="server" это изменит имя элементов формы внутри, и вы полагаетесь на форму, имеющую именованные элементы:

this.form.limitedtextarea

Для текстового поля, вы должны хорошо передать только this, для countdown Вы можете использовать идентификатор:

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> 
Другие вопросы по тегам