![](/img/trans.png)
[英]javascript Validation gives alert even when all radio buttons checked
[英]PHP - Validation radio buttons alert
我在一個表單中輸入了三個單選按鈕。 我希望在用戶單擊提交而不選擇或回答所有問題時出現警報框..
這是我的表格..
<tr>
<th> Your attendance<font size="4" > </font></th>
<td> <input type="radio" name ="v1" value = "4" onclick="updateTotal();"/></td>
<td> <input type="radio" name ="v1" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v1" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v1" value = "1" onclick="updateTotal();" /></td>
</tr>
<tr>
<th > Your grades <font size="4" > </font></th>
<td> <input type="radio" name ="v2" value = "4" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "1" onclick="updateTotal();" /></td>
</tr>
<tr>
<th >Your self-control <font size="4" > </font></th>
<td> <input type="radio" name ="v3" value = "4" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "1" onclick="updateTotal();" /></td>
</tr>
我試過這個javascript代碼..但它不起作用沒有出現警報
<script type="text/javascript">
function validateform()
{
if(document.getElementsByName('v1').value="")
{
alert('Your grades is not selected');
return false;
}
}
</script>
拿這個功能,你不能在單選組上使用document.getElementsByName('v1').value
。
看看這個小提琴:http: //jsfiddle.net/JXajh/2/
function isOneChecked(name)
{
var buttons = document.getElementsByName(name);
for (var i = 0; i < buttons.length; i++)
{
if (buttons[i].checked)
{
return true;
}
}
return false;
}
這是因為getElementsByName()
將返回一個 DOM 元素數組,您無法獲取值或檢測是否直接從該數組檢查元素。 您必須遍歷所有元素檢查是否至少檢查了一個。 所以是這樣的:
function validateForm() {
var radiosToValidate = ['v1', 'v2', 'v3'];
var invalidRadios = [];
for (i = 0; i < radiosToValidate.length; i++) {
var currentRadioArray = documentGetElementsByName(radiosToValidate[i]);
var currentRadioIsValid = false;
for (j = 0; j < currentRadioArray.length; j++) {
if (currentRadioArray[j].checked) {
currentRadioIsValid = true;
break;
}
}
if (currentRadioIsValid === false) {
invalidRadios[] = radiosToValidate[i];
}
}
if (invalidRadios.length > 0) {
alert('At least one radio button has not been selected');
return false;
}
return true;
}
您的比較有一個=
,而不是==
。 您正在分配和測試""
,這是錯誤的,因此您的 if 語句將永遠不會執行。
比較兩個值的運算符是==
。
用這個:
if (document.getElementsByName('v1').value== "") {
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.