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>