Код: Выделить всё
< /code>
По другим причинам я добавляю атрибуты «имя» в лету. Наконец, все это поворачивается в этом коде HTML: < /p>
< /code>
Затем, когда я пытаюсь получить значения < /p>
multiple = document.querySelector('input[name="rblMultiple"]:checked').value; //Get "N"
shipping = document.querySelector('input[name="rblShipping"]:checked').value; //Fails. Should get "C", but object is null
< /code>
Это первая функция выполняется на ContentPageLoad: < /p>
function prepareForms() {
...
document.querySelectorAll('input[type="radio"][data-name]').forEach(rb => {
rb.setAttribute('name', rb.getAttribute('data-name'));
rb.addEventListener('click', e => radioButtonListValue(e.target));
radioButtonListValue(rb);
var hd = document.querySelector(`input[type="hidden"][id$="hd${rb.getAttribute('data-name')}"]`);
if (hd) rb.checked = (rb.value == hd.value);
});
}
function radioButtonListValue(rb) {
const hd = document.querySelector(`input[type="hidden"][id$="hd${rb.getAttribute('data-name')}"]`);
if (hd && rb.checked) hd.value = rb.value;
console.log(rb)
console.log(hd.value)
}
< /code>
Я использую скрытый вход для хранения выбранного значения. И консоль показывает это: < /p>
""
""
N
N
[Введенное решение]
Если я определяю имя атрибута в линии вместо изменений. Функция PrepareForms () Когда используется управление радиобатчкой ASP, потому что в атрибуте есть ссылки на верхние элементы управления, которые я не хочу. E.G.: CTL00 $ cphContendido $ radioname.
Когда используется htmlinputradiobutton, контроль атрибута не меняется.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... utton-list