簡體   English   中英

PHP - 驗證單選按鈕警報

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM