- Add_Load
- PageLoadStuff Start
< li>Переменные PageLoadStuff - PageLoadStuff Complete
- PageLoadStuff Start
- Переменные PageLoadStuff
- PageLoadStuff Complete
[*]Это обратная передача!
[*]null
< /ul>
И счетчики полностью перестают работать. Это не внутри панели обновления. Я предполагаю, что я удалю EventListeners, а затем добавлю их обратно, снова запустив функцию PageLoadStuff, но я даже не уверен, правильно ли это.
РЕДАКТИРОВАТЬ : Если в блоке кода «isPostback» я закомментирую все, кроме PageLoadStuff(), предупреждение «PageLoadStuff Complete» никогда не появится, поэтому я предполагаю, что оно умирает в addEventListener.
Вот мой сценарий:
function PageLoadStuff() {
alert("PageLoadStuff Start");
const textArea2 = document.getElementById('TextBox_Follow_Up_Answer2');
const label1 = document.getElementById('Label_Answer_Char_Count');
const label2 = document.getElementById('Label_Answer_Char_Count2');
const labelRemaining1 = document.getElementById('Label_Answer_Char_Remaining');
const labelRemaining2 = document.getElementById('Label_Answer_Char_Remaining2');
alert("PageLoadStuff Vars");
// Add input event listener for text area
textArea2.addEventListener('input', IncrementCounters);
function IncrementCounters() {
textCounter(textArea2, 3000, label1, labelRemaining1);
textCounter2(textArea2, 865, label2, labelRemaining2);
// alert("Event Listener - DOMContentLoaded");
}
alert("PageLoadStuff Complete");
}
var isPostBack = '' == 'True';
if (isPostBack) {
alert("It's a PostBack!");
const textArea2 = document.getElementById('TextBox_Follow_Up_Answer2');
alert(textArea2);
document.removeEventListener('DOMContentLoaded', PageLoadStuff);
textArea2.removeEventListener('input', IncrementCounters);
alert("EventListeners Removed");
PageLoadStuff();
}
if (document.readyState == 'loading') {
// still loading, wait for the event
document.addEventListener('DOMContentLoaded', PageLoadStuff);
} else {
PageLoadStuff();
}
Sys.Application.add_load(function () {
alert("Add_Load");
PageLoadStuff();
});
function textCounter(field, maxlimit, label, label2) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else {
label.innerHTML = maxlimit - field.value.length;
}
if (field.value.length > maxlimit - 500) {
label.style.color = "#FF0000";
label2.style.color = "#FF0000";
}
else {
label.style.color = "#000000";
label2.style.color = "#000000";
}
// alert("textCounter Fired");
}
function textCounter2(field, maxlimit, label, label2) {
if (field.value.length > maxlimit)
field.value = field.value;
else {
label.innerHTML = maxlimit - field.value.length;
}
if (field.value.length > maxlimit - 200) {
label.style.color = "#FF0000";
label2.style.color = "#FF0000";
}
else {
label.style.color = "#000000";
label2.style.color = "#000000";
}
// alert("textCounter2 Fired");
}
3000
characters remaining :
865
characters remaining for email
Подробнее здесь: https://stackoverflow.com/questions/789 ... ng-removed