У меня есть следующий вид (эхо-сигнал через php), который при выборе переключателя, я хочу, чтобы это значение передавалось в функцию javascript, с которой я могу справиться.
<form id=\"form1\" name=\"form1\" method=\"\" action=\"JavaScript:alterRecord()\"> <input name=\"radiobutton\" type=\"radio\" value=\"test1\" />Test 2<p> <input name=\"radiobutton\" type=\"radio\" value=\"test2\" />Test 2<p> <input name=\"radiobutton\" type=\"radio\" value=\"test3\" />Test 3<p> <input name=\"radiobutton\" type=\"radio\" value=\"test4\" />Test 4 <input type=\"submit\" name=\"Submit\" value=\"Submit\" /> </form>
И JavaScript
function alterRecord(value) { alert(value); }
Я не могу узнать, как получить javascript для получения представленной формы.
Если вы хотите что-то сделать в Javascript при отправке, но не имеете обычного запроса POST или GET (что приводит к выгрузке старой страницы и загрузке новой страницы), обязательно выполните следующее:
<html> <head> <style type="text/css"> body { background-color: black; color: white; } </style> <script type="text/javascript"> function handleClick(event) { if (console) console.info("handling click"); // for Firebug debugging, if you want it /* do something here */ alert(this.textBox1.value); // I don't like alerts but it works everywhere if (console) console.info("handled click"); event.preventDefault(); // disable normal form submit behavior return false; // prevent further bubbling of event } function doit() { if (console) console.info("starting doit()"); document.forms.myform.addEventListener("submit", handleClick, true); return true; } </script> </head> <body onload="doit()"> <form name="myform"> <div> <textarea name="textBox1" rows="10" cols="80"> 'Twas brillig, and the slithy toves Did gyre and gimble in the wabe; All mimsy were the borogoves, And the mome raths outgrabe. </textarea> </div> <input type="submit" value="Update"/> </form> </body> </html>
Строки event.preventDefault()
и return false
являются ключевыми. Мне также нравится использовать addEventListener вместо жесткого кодирования onSubmit в форме. Я думаю, это вопрос стиля / предпочтения. (хотя addEventListener позволяет вам иметь несколько обработчиков).
С головы:
<form onSubmit="alterRecord"> <input type="radio" id="radio1"/> ... </form> function alterRecord() { var radio1 = document.getElementById('radio1'); alert(radio1.checked); }
Вы хотите, чтобы javascript срабатывал при нажатии переключателя? Или когда форма отправлена?
Как уже упоминалось, вы можете использовать onsubmit = "alterRecord (this);" Затем вы можете использовать такие команды, как
alert(this.radio1.checked);
если вы добавите идентификаторы ко всем переключателям.
А для запуска javascript каждый раз, когда нажимается переключатель
<input type="radio" onclick="alterRecord(this);" ... />
Затем команда «this» позволит вам получить доступ к щелчку переключателя.
Атрибут действия должен указывать на URL-адрес. Если вы хотите что-то сделать в javascript, когда пользователь отправляет форму, используйте атрибут onsubmit. Например, onsubmit = "alert (42)".
Если вы вызываете javascript-метод из атрибута onsubmit и передаете его «это» в качестве аргумента, вы получите доступ к тегу формы и всем его дочерним узлам и сможете определять текущее состояние различных элементов управления по своему усмотрению.
Сначала начните использовать jQuery .
Теперь, когда у вас это получилось, прочитайте документы, и должно быть достаточно легко сделать что-то вроде этого:
$("input[name='radiobutton']").click(function() { // do stuff });