Передача значения 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, время: 20:42. |