搜索

首页  >  问答  >  正文

javascript - 至少選擇一個項目?

$("#join").submit(function(e){
var f = document.forms[0];
    for (var i=0;i<f.elements.length;i++) 
    {  
        var ee = f.elements[i]; 
        if (ee.type == "checkbox" && ee.checked)
        {
            //成功
        }
        else
        {
            alert('error');
            return false;
        }
    } 
}); 

我這樣寫無法成功
怎麼樣都是error (至少選擇一項)
想請問是哪裡錯誤?

天蓬老师天蓬老师2774 天前392

全部回复(2)我来回复

  • 天蓬老师

    天蓬老师2017-04-10 17:28:41

    如果你是想循环检查所有 checkbox,只要有一项选中就 OK,那么你至少应该在所有循环完了之后才知道是否有找到,而不是在每一个循环里去判断失败。

    function check() {
        for (...) {
            if (somechecked) {
                return "OK"            
            }
        }
        
        return "error";
    }

    如果不单独写 fucntion 一般会这么写

    var found = false;
    for (....) {
        if (somechecked) {
            found = true;
            break;
        }
    }
    if (found) {
        alert("ok");
    } else {
        alert("error");
    }

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:28:41

    你的方法是没错的,可是还差一点就是在判断有选中执行完选中的代码后要跳出循环!!!否则它会继续执行for循环所以会弹出error

    if (ee.type == "checkbox" && ee.checked)
            {
                //成功
                
                return;//跳出循环
            }

    demo

    回复
    0
  • 取消回复