2016-12-13 6 views
0

Итак, я новичок в JavaScript. Я пытаюсь создать простой код, который позволит человеку выбрать binary, hex или oct и конвертировать десятичное число в выбранный переключатель. Теперь я не беспокоюсь о конверсии на данный момент, я просто пытаюсь заставить код запускать функцию после того, как я нажал submit. Например, если выбрана бинарная кнопка, после нажатия кнопки «Отправить» на странице она должна указать «выбранный двоичный файл».JavaScript Radio Buttons on Submit

Я действительно потерял, как заставить это работать и не уверен, где искать. Я продолжаю изменять свой код, и я получил его, когда вы выберете кнопку, которую он генерирует «выбранный объект», но я хочу, чтобы он генерировался только после нажатия кнопки отправки. Не уверен, что мне нужно закодировать кнопку отправки или тег формы. Мой текущий, не рабочий код выглядит следующим образом:

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <script> 
 

 

 
\t \t function convertit() 
 
\t \t { 
 
\t \t \t 
 
\t \t \t var conversion = document.getElementsByName('convert'); 
 

 

 
\t \t \t if (conversion[0].checked == true) 
 
\t \t \t { 
 
\t \t \t \t document.getElementById('test').innerHTML = "Binary Checked"; 
 
\t \t \t } 
 

 

 
\t \t \t else if (conversion[1].checked == true) \t 
 
\t \t \t { 
 
\t \t \t \t document.getElementById('test').innerHTML = " Hex Checked"; 
 
\t \t \t } 
 

 
\t \t \t else if (conversion[2].checked == true) \t 
 
\t \t \t { 
 
\t \t \t \t document.getElementById('test').innerHTML = "Oct Checked"; 
 
\t \t \t } 
 

 
    \t \t \t else 
 
\t \t \t { 
 
\t \t \t \t alert("Empty"); 
 
\t \t \t } 
 
\t \t \t return true; 
 
\t \t } 
 

 
\t 
 

 
\t 
 

 

 
\t \t </script> 
 
\t </head> 
 

 

 

 

 
\t <body> 
 

 
\t \t <p id="test"> </p> 
 

 
\t \t <form onsubmit="return convertit();"> 
 
\t \t \t <input type="radio" value="binary" name="convert" id="binarybut" > 
 
\t \t \t \t Binary 
 
\t \t \t </input> 
 

 
\t \t \t <input type="radio" value="binary" name="convert" id="hexbut" > 
 
\t \t \t \t Hex 
 
\t \t \t </input> 
 

 
\t \t \t <input type="radio" value="hex" name="convert" id="octbut"> 
 
\t \t \t \t Oct 
 
\t \t \t </input> 
 

 
\t \t \t <input type="submit" value="Convert Number" > 
 

 

 
\t \t </form> 
 

 

 

 

 

 
</body> 
 
</html>

+0

Ваш код хорошо, просто возвращает 'false' из обработчика так, что форма по умолчанию представить будет предотвращено. Ваша форма отправляется, что заставляет страницу обновляться, поэтому она переходит в состояние по умолчанию. –

+0

см. Https://jsfiddle.net/arunpjohny/tm1aoukx/1/ –

+0

Большое вам спасибо! Настолько рад, что это было простое решение, я весь день схожу с ума, пытаясь заставить его работать. Спасибо!!! Это сработало! – FckItsChey

ответ

0

Ваш Javascript не может найти свой выходной элемент, потому что он еще не объявлен.

Если вы положили свой сценарий <> ... </script> в конце тела, он должен работать нормально.

например:

... 
< /script> 
< /body> 

Here's a working fiddle

0

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <script> 
 

 
\t \t function convertit() 
 
\t \t { 
 
\t \t \t 
 
\t \t \t if (document.getElementById('binarybut').checked) 
 
\t \t \t { 
 
           alert("Binary Checked"); 
 
\t \t \t } 
 

 

 
\t \t \t else if (document.getElementById('hexbut').checked) \t 
 
\t \t \t { 
 
\t \t \t   alert("Hexadecimal Checked"); 
 
\t \t \t } 
 

 
\t \t \t else if (document.getElementById('octbut').checked) \t 
 
\t \t \t { 
 
           alert("Octal Checked"); 
 
\t \t \t } 
 

 
    \t \t \t else 
 
\t \t \t { 
 
\t \t \t \t alert("Empty"); 
 
\t \t \t } 
 
\t \t \t return true; 
 
\t \t } 
 

 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 

 
\t \t <p id="test"> </p> 
 

 
\t \t <form> 
 
\t \t \t <input type="radio" value="binary" name="convert" id="binarybut" > 
 
\t \t \t \t Binary 
 
\t \t \t </input> 
 

 
\t \t \t <input type="radio" value="binary" name="convert" id="hexbut" > 
 
\t \t \t \t Hex 
 
\t \t \t </input> 
 

 
\t \t \t <input type="radio" value="hex" name="convert" id="octbut"> 
 
\t \t \t \t Oct 
 
\t \t \t </input> 
 

 
\t \t \t <button type="button" onclick="convertit()">Convert</button> 
 

 

 
\t \t </form> 
 
</body> 
 
</html>

+0

@ssheatler Доставьте этот ответ на свой вопрос, вы можете запустить код и попробовать CSS, можно сделать позже после завершения функций –

+0

любая удача, это то, что вам нужно прямо @ssheatler –