Это странно. У меня есть текстовая область, содержимое которой изменяется путем выбора элементов в списке с помощью флажка для выбора. Если я сниму флажок, этот элемент должен быть удален из списка.
Итак, в моей форме есть текстовая область: buildarea (это id)
Я использую JavaScript:
function SelectSection(form, id, checked)
// заполняет и удаляет текстовое поле в правой части с выбранными переменными
if (checked) {
var checker = id.substr(5,100)
$('#buildarea').append(checker);
$('#buildarea').append("\r\n");
} else {
var text = id.substr(5,100);
var lines = $('#buildarea').val().split('\n');
lines = lines.filter(function(val) {
if (val.match(text)) return false
else return true
})
$('#buildarea').text(lines.join('\n')).html();
}
средство проверки var просто удаляет ненужный текст в начале выбранного элемента, так что не беспокойтесь об этом.
Итак, суть в том, что этот js отлично работает на Chrome, Firefox и IE (11)… но не работает в Microsoft Edge.
Список переменных может выглядеть примерно так:
60637; hc_j18
59157; hc_b11_1
59162; hc_b11_2
59172; hc_b11_4
59027; hc_o0k
и если отменить выбор, скажем, 3-й элемент (оканчивающийся на _2), то в 3 упомянутых браузерах я получаю:
60637; hc_j18
59157; hc_b11_1
59172; hc_b11_4
59027; hc_o0k
Что идеально. НО в MS Edge я получаю:
60637; hc_j18
59157; hc_b11_1
59172; hc_b11_4
59027; hc_
Итак, хотя третий элемент был удален, у последнего элемента его имя обрезано после _ (подчеркивание).
Мои навыки работы с javascript не являются блестящими, но мне интересно, видел ли кто-нибудь еще подобное поведение и как его можно преодолеть?
Большое спасибо
Пол