簡體   English   中英

在單擊按鈕上,如果用戶選擇多個復選框,則復選框上的驗證;如果用戶僅選擇一個復選框,則它應允許

[英]On click button a validation on checkbox if user selects more than one checkbox, it should allow if user selects only one checkbox

在一個按鈕上,單擊JavaScript Validation應該是:如果用戶選擇一個復選框,則它應允許對任何腳本進行進一步處理,但是當用戶選擇多個復選框時,應提示“您只能選擇一個復選框”。

我不明白我應該寫什么JavaScript?

<tr><td colspan='2'><input type='checkbox' name='check1' value=12> Q.12 Torronto in located in  ?</td></tr>
<tr><td colspan='2'><input type='checkbox' name='check1' value=4> Q.4 Columbo is the capital of which country ?</td></tr>
<tr><td colspan='2'><input type='checkbox' name='check1' value=16> Q.16 Most used  social suite ?</td></tr>
<tr><td colspan='2'><input type='checkbox' name='check1' value=19> Q.19 Largest State ?</td></tr>

函數調用

<td><input type='submit' type='Edit' value='EDIT' formmethod='post' formaction='/~xyz/cgi-bin/Project/CheckEdit.py' onclick='return(CheckedOne())'></td></tr>

我嘗試過的JS:

function Checked() {

               var d = document.myForm.check1;
               var arr = 0;
               for (var i = 0; i < d.length; i++) {
                   if (d[i].checked) {
                   arr++;
                   alert(arr);
                   }
               }
                  if (arr == 1) return true;
                  else {
                      alert("Please select only one Checkbox");
                      return false;
                  }
          } 

jQuery的長度將使您的總復選框

http://jsfiddle.net/yAz2j/

$(".subtn").live('click', function() {

    var total = $('.check1:checked').length;

    if(total > 1) {
        alert(" Checked : "+total);
        // your code
    } else {
        alert("Checked only one!");
    }

    return false;

});

另請檢查此帖子: https : //stackoverflow.com/a/5594976/1570901

我認為您可以使用sravis使用jQuery的方法做得更好。

這是原始代碼中的問題:您在HTML中調用了CheckedOne函數,但在JS中( Checked )使用了另一個名稱。

另外,使用document.getElementsByName('check1'); 得到數組。

參見http://jsbin.com/iTiQOFIX/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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