#javascript #asp.net #vb.net
#javascript #asp.net #vb.net
Вопрос:
Я реализовал функцию счетчика символов, которая работает в Chrome, но не работает в Firefox. У меня это на моем VB.NET страница. Можете ли вы помочь мне понять, почему он работает в Chrome, но не в Firefox?
<br>Other comments (max 250 characters):
<br>
<asp:TextBox ID="OtherComments" runat="server" MaxLength="250"
onblur="javascript:CharCounter(this.id);"
onkeyup="javascript:CharCounter(this.id);" style="height:50px; width:450px;"
TextMode="MultiLine"></asp:TextBox>
<br>
<asp:Label ID="lblCounter" runat="server" Text="250 chars remaining"></asp:Label>
<script language="javascript" type="text/javascript">
function CharCounter(textId) {
var totalchar = '<%= OtherComments.MaxLength %>';
var txtbox = document.getElementById(textId);
var lbl = document.getElementById('<% =lblCounter.ClientID %>');
if (txtbox.value.length > totalchar) {
txtbox.value = txtbox.value.substring(0, totalchar);
}
lbl.innerText = (totalchar - txtbox.value.length) " chars remaining";
}
</script>
Комментарии:
1.
.innerText
является нестандартным. Используйте.textContent
вместо этого. Если вам нужно поддерживать IE8, вы можете исправить его вHTMLElement.prototype
2. или innerHTML — работает везде
Ответ №1:
Вы сравниваете строку с целым числом. Это может быть проблемой. Также лучше использовать innerHTML вместо innerText. Внутренний текст не поддерживается в некоторых браузерах. Надеюсь, это решит вашу проблему.
function CharCounter(textId) {
var totalchar = <%= OtherComments.MaxLength %>;
var txtbox = document.getElementById(textId);
var lbl = document.getElementById('<% =lblCounter.ClientID %>');
if (txtbox.value.length > totalchar) {
txtbox.value = txtbox.value.substring(0, totalchar);
}
lbl.innerHTML = (totalchar - txtbox.value.length) " chars remaining";
}