2013-04-02 16 views
0

我有一個html表單,並有一個cgi腳本運行的動作,然後我有一個JavaScript onsubmit函數,應該檢查單選按鈕是否填寫,否則它不會提交。使用cgi動作提交Javascript onsmit?

<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/> 

我能做到這一點在HTML文件中的JavaScript功能或做我需要做的是,在CGI腳本?

+0

你可以使用jQuery嗎? – griegs

回答

1

以下腳本適用於所有瀏覽器。首先,獲取頁面上的輸入,然後遍歷每個檢查Radio的名稱屬性。只要它找到一個被選中的Radio輸入,它就會返回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

如果您正確使用ID,那麼這將不起作用(每個HTML元素都應該有一個唯一的ID)。但是,如果您的選擇器是$(「[name = Radio]」),那麼它就會起作用。你也可以簡單地創建函數體:return $(「input [name = Radio]」)。is(「:checked」); –

+1

這是假設你只有一個單選按鈕在你的HTML頁面。但要解決這個問題,你總是可以用class來代替。感謝您的高舉。 =) – Eralph