Передача значения input в функцию js
Добрый день!
Есть несколько input, которые я передаю таким образом OnClick='my_func(name1.value,name2.value)' Значения select-ов передаются таким образом без проблем. А вот значение <input type="radio" name="serve" value="1" checked> <input type="radio" name="serve" value="2"> В браузере Safari и на apple-устройствах выдают undefined В Хроме напр передает значения. Чем это обусловлено? Возможно, передача значений через name.value недоступна в некоторых браузерах? Как лучше всего обращаться в inputam, что бы все браузеры и мобильные устройства получали данные? Спасибо за любые подсказки. |
Цитата:
Все равно как ты определишь ссылку на элемент. Главное его определить однозначно. Обращение по именам дает возможность работать с коллекцией одноименных элементов... В случае с радиокнопками нужно определять активный элемент самому
<input type="radio" name="serve" value="1" checked>
<input type="radio" name="serve" value="2">
<script>
var o=document.querySelector('[name="serve"]:checked');
alert(o.value);
</script>
|
<input type="radio" name="serve" value="1" checked>
<input type="radio" name="serve" value="2">
<script>
var inpServe = document.querySelectorAll('[name="serve"]');
for(var i = 0; i < inpServe.length; i++) {
inpServe[i].onclick = function() {
var o=document.querySelector('[name="serve"]:checked');
alert(o.value);
}};
</script>
|
Спасибо! Так получилось. Но интересует как это все прикрутить к событию Onclick, так как моя переменная передается в несколько функций сразу.
|
Цитата:
|
Вот еще вопрос возник, а как если ни один элемент не выбран, как быть? У меня по факту
<script>var o=document.querySelector('[name="serve"]:checked');
alert(o.value);</script>
Значение пустое, а не ноль, и ошибка идет, скрипт останавливается... Я с js на Вы, как написать проверку на NULL и присвоить 0? |
Цитата:
val=(val=='')? 0; val; Цитата:
val=val||0; |
В итоге работает так
<script>
if ( !Array.prototype.filter.call( document.getElementsByName('serve'), function( elem ){ return elem.checked; } ).length ) {
var serve=0;
}
else var serve = document.querySelector('input[name="serve"]:checked').value;
</script>
|
| Часовой пояс GMT +3, время: 01:09. |