2013-04-02 3 views
0

У меня есть html-форма и есть скрипт cgi, выполняющийся в действии, а затем у меня есть функция javascript onsubmit, которая должна проверять, был ли радиокнопка заполнена, иначе она не будет отправлена.Javascript onsubmit с cgi action?

<script> 
function checkscript() 
{ 
.... check if a radio button was clicked otherwise dont submit. 
} 
</script> 

<form action="default.cgi" method="post" onsubmit="return checkscript()" enctype= 
"application/x-www-form-urlencoded"> 
<h1>Choose</h1> 

<p><input type="radio" name="Radio" value="1" /><font size="5" 
color="#0033CC">Instant Psychology</font><br /> 
<br /> 
<input type="radio" name="Radio" value="2" /><font size="5" 
color="#CC0000">Instant Geography</font><br /> 
<br /> 
<form/> 

Могу ли я сделать это в функции Javascript в HTML файл или мне нужно сделать это в сценарии CGI?

+0

Можете ли вы использовать jQuery? – griegs

ответ

1

Следующий скрипт работает во всех браузерах. Во-первых, получает входные данные на странице, а затем проверяет каждый атрибут имени для радио. Как только он обнаружит один радиовход, который отмечен (выбран), он возвращает true, который отправит форму. Если, однако, ни один из входов не проверен (выбран), скрипт возвращает false и предотвращает отправку.

function checkscript() 
{ 
    var inputs = document.getElementsByTagName("input"); 
    for (var i=0, l=inputs.length; i<l; i++) { 
     if (inputs[i].name === "Radio" && inputs[i].checked) return true; 
    } 
    return false; 
} 
1

если вы можете использовать JQuery, вы делаете это

function checkscript(){ 
    if($('#radio-button').is(':checked')) return true; 
    else return false; 
} 

и да, вы можете просто поместить его в HTML-файл.

Надеюсь, это поможет.

+0

Это не сработает, если вы правильно используете идентификаторы (каждый элемент HTML должен иметь уникальный идентификатор). Однако, если ваш селектор равен $ ("[name = Radio]"), тогда он будет работать. Вы также можете сделать тело функции просто: return $ («input [name = Radio]»). Is («: checked»); –

+1

, который предполагает, что на вашем html-странице имеется только один переключатель. Но для этого вы всегда можете использовать класс. Спасибо за головы. знак равно – Eralph

Смежные вопросы