【问题标题】:Working with checkbox in PHP and JS在 PHP 和 JS 中使用复选框
【发布时间】:2011-07-31 10:32:23
【问题描述】:

我正在创建一个带有单选按钮和复选框的表单。我想用 javascript onsubmit 和 php 验证表单。为了使 php 工作,我必须在名称中编写带有 [] 的复选框和单选按钮(例如 ) 我搜索了其他主题,发现我可以为单选按钮设置一个默认的选中值,以避免人们没有选择一个值。没关系。 但是,我还需要确保人们选中的复选框不超过 3 个。

无法做到这一点
var count = 0;
for (x=0; x<document.fic_rec.rec_genre.length; x++){
    if (document.fic_rec.rec_genres[x].checked){
        count++;
    }
}

if (count==0){
    rec_error += "at least 1 genre; ";
}
else if (count>3){
    rec_error += "no more than 3 genres; ";
}   

我收到一条错误消息“无法读取未定义的属性‘长度’ 我的 HTML 代码如下所示:

<ul class="sub_ul">
<li class="sub">
<input type="checkbox" name="rec_genres[]" id="action"value="action" />
<label for="action">Action/Adventure</label></span><li class="sub"><u>Alternative reality</u></li>
<li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_history     value="au_history" />
<label for="au_history">AU History</label></li><li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_universe value="au_universe" />
<label for="au_universe">AU Universe</label></li><li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_other     value="au_other" />

等等等等

帮助!谢谢!!

【问题讨论】:

    标签: php javascript checkbox validation compatibility


    【解决方案1】:

    使用例如访问这些元素的元素集合:

    document.fic_rec.elements['rec_genres[]']
    

    请注意: 如果找到超过 1 个元素,这将返回一个 nodeList。
    如果只有 1 个具有给定名称的元素,它将返回元素本身而不是 nodeList。

    你也可以使用querySelectorAll()(IE不支持

    document.querySelectorAll('form[name="fic_rec"] input[name="rec_genres[]"]')
    

    ...这将始终返回一个 nodeList,无论找到多少元素。


    回复评论:

    var radio_count = 0;         
    for (var i=0;i<document.fic_rec.elements['rec_pub_length[]'].length;i++) 
    { 
      if (document.fic_rec.elements['rec_pub_length[]'][i].checked) 
      { 
        radio_count = 1; 
        break;
      } 
    } 
    if (radio_count != 1) { rec_error += "story length; "; } 
    

    【讨论】:

    • 检查长度属性。如果只有 1 个元素,它将是“未定义”,否则长度会告诉你找到了多少个元素。
    • 我可能是超级超级n00b......我应该如何做循环? radio_count = 0; for (var i=0;i
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多