Javascript и Radio
Здравствуйте!
Что имеем: <input type="radio" name="q"><br> <input type="radio" name="q"><br> <input type="radio" name="q"><br> <input type="button" id="w" value="Тык"> Как пытался:
if
(document.getElementsByName('q').checked == true)
{document.getElementById('w').onclick=function()
{alert ('Выбор сделан!');}
}
else
{document.getElementById('w').onclick=function()
{alert ('Choose your destiny!!');}
}
На выходе хотел получить: При выборе одного из представленных выше radio и клике по кнопке вылетает "Выбор сделан", если ни один radio не выбран, то при клике вылетает "Choose your destiny!!". Подскажите, пожалуйста, в чем ошибся? |
if
(*!*document.getElementsByName('q').checked*/!* == true)
*!*
{document.getElementById('w').onclick=function()
{alert ('Выбор сделан!');}
}
*/!*
else
{document.getElementById('w').onclick=function()
{alert ('Choose your destiny!!');}
}
Пример: Работающий пример
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
if (document.getElementsByName('q')[0].checked == true) {
alert ('Выбор сделан!');
} else {
alert ('Choose your destiny!!');
}
}
</script>
*Примечание : |
Спасибо.
Еще такой вопрос: надо проверить на check'нутость все radio, соответственно, делать надо циклом...
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var z = document.getElementsByName('q');
for (var i = 0; i < z.length; i++)
{
if (document.getElementsByName('q')[i].checked == true) {
alert ('Выбор сделан!');
} else {
alert ('Choose your destiny!!');
}
}
}
</script>
Я понимаю, что неправильно сделал, но как правильно сделать, чтобы alert срабатывал после обработки всех radio а не после каждого я не понял... Подскажите, пожалуйста, как должен выглядеть цикл... |
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var z = document.getElementsByName('q'),s='';
for (var i = 0; i < z.length; i++)
{
if (document.getElementsByName('q')[i].checked == true) {
s = 'Выбор сделан!';
} else {
s = 'Choose your destiny!!';
}
}
alert(s);
}
</script>
ну а теперь проблема с логикой. зачем проходиться по всем радио и постоянно дергать переменную? наверное, целью было сделать так =>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var z = document.getElementsByName('q'),s='';
for (var i = 0; i < z.length; i++)
{
if (document.getElementsByName('q')[i].checked == true) {
s = 'Выбор сделан!'; *!*break;*/!*;
} else {
s = 'Choose your destiny!!';
}
}
alert(s);
}
</script>
|
Спасибо)
|
melky, малость подправлю... :)
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var z = document.getElementsByName('q'),s='Choose your destiny!!';
for (var i = 0; i < z.length; i++) {
if (z[i].checked) {
s = 'Выбор сделан!'; break;
}
}
alert(s);
}
</script>
|
я отвечу тебе странностью :)
извини, меня сегодня просто прёт на call и прототипы массива (извращения).. и на "соперничество"
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var s = Array.prototype.every.call(
document.getElementsByName('q'),
function(a){ return !a.checked }
) ? 'Choose your destiny!!' : 'Выбор сделан!';
alert(s);
}
</script>
|
Снова ничего путного у меня не выходит...
Надо сделать такое условие: Если выбран один из radio - то кнопка в онклике получает переход по ссылке Если не выбран - по клику срабатывает алерт... Подскажите, пожалуйста, логику, на основе которой надо код писать, очень хочется хоть от часть свой код наваять и немного самому подумать... |
Цитата:
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="radio" name="q"><br>
<input type="button" id="w" value="Тык">
<script>
document.getElementById("w").onclick = function(){
var z = document.getElementsByName('q'),s=false
for (var i = 0; i < z.length; i++) {
if (z[i].checked) {
s = true; break;
}
}
if (s) {
top.location='http://javascript.ru/forum/dom-window/18853-javascript-i-radio.html#post114146'
} else {
alert('Choose your destiny!!');
}
}
</script>
|
if (s) - это "если s=true"??
|
| Часовой пояс GMT +3, время: 13:22. |