Ну, как говорит мой заголовок, у меня есть небольшая трудность при выполнении функций javascript с помощью переключателей. Мне бы очень хотелось, чтобы всплывающее окно с предупреждающим ящиком выбирало переключатель, но мой код, кажется, когда-либо работал против моих "любви". Пожалуйста, помогите мне.
Здесь мой HTML, это немного.
<!DOCTYPE html>
<html>
<head>
<title>Question One</title>
<link type = "text/css" rel = "stylesheet" href = "QuestionOne.css">
<script src = "QuestionOne.js"></script>
</head>
<body>
<div id = "question">
<h1>Question One</h1>
<p>Calculate the area of a circle or a cube</p>
<form id = "mainForm">
<fieldset>
<legend>Choose shape to find area</legend>
<label><input type = "radio" name = "shape" value = "Circle" onclick = "checkRadios()" />Circle</label>
<br />
<label><input type = "radio" name = "shape" value = "Cube" onclick = "checkRadios()" />Cube</label>
</fieldset>
</form>
</div>
<div id = "solution">
</div>
</body>
</html>
и вот javascript
var radios = document.getElementsByName("shape");
var len = radios.length;
function checkRadios()
{
for(int i = 0; i < len; i++)
{
if(radios[i].checked)
{
alert(radios[i].getAttribute("value") + " selected.");
}
}
}
Я чувствую, что мне нужно добавить это, я просто новичок в js и буду признателен, если помощь не слишком сложна. т.е. я просто хочу базовый javascript без каких-либо библиотек, таких как jquery, так как мне будет сложно понять в данный момент.
Попробуйте этот метод.
JavaScript:
var currentValue = 0;
function checkRadios(myRadio) {
alert('Old value: ' + currentValue);
alert('New value: ' + myRadio.value);
currentValue = myRadio.value;
}
HTML:
<input type = "radio" name = "shape" value = "Circle" onclick = "checkRadios(this)" />
См. Обработчик события OnChange для переключателя (INPUT type = "radio") не работает как одно значение
Возможно, вы захотите запустить браузер с помощью таких инструментов разработчика, как chrome или firefox.
Используйте var вместо int для цикла for.
Кроме того, len было 0, когда я его запустил. Поэтому вы можете проверить это и в цикле.
for(var i = 0; i < radios.length; i++)
{
if(radios[i].checked)
{
alert(radios[i].getAttribute("value") + " selected.");
}
}
смотрите также: