【问题标题】:javascript checkbox not reacting when clicking, always have to press submit单击时javascript复选框没有反应,总是必须按提交
【发布时间】:2012-08-02 14:39:33
【问题描述】:

由于某种原因,我已经尝试了几天的脚本无法工作。

我有一些显示不同颜色的复选框。当用户单击一种颜色时,我希望脚本重新加载我网站的其中一个 DIV。

使用<form> 标签和<input type="submit"> 一切正常,基本上只需一个按钮。但它永远不会只通过选中一个复选框来工作,我总是必须点击提交。

任何有关代码的帮助将不胜感激!

谢谢!

javascript:

<script>
    $('.colors').delegate('input:checkbox', 'change', function() { 
        if ($(this).attr("checked")) {
            var id = $("#regularCheckbox").find(':checked').val();
            $('#itemMain').load('index.php?color='+id);
        }
    }).find('input:checkbox').change();
</script>

表格:

<?php
$colors = mysql_query("SELECT DISTINCT color_base1 FROM item_descr ORDER BY color_base1");
while ($colorBoxes = mysql_fetch_array($colors))
{
echo "<input type='checkbox' id='checkbox-1-1' class='regularCheckbox' name='color' value='".$colorBoxes[color_base1]."' /><font class='similarItemsText'>   ".$colorBoxes[color_base1]."</font><br />";
}
?>
</div>

【问题讨论】:

  • 你试过$("input:checkbox").on('click', function() { ... });吗?
  • 只有一个复选框,还是单选框?你能给我们看看 DOM/HTML 吗?
  • @Matt - 是的,也不工作......

标签: php javascript forms checkbox


【解决方案1】:
$("#regularCheckbox").find(':checked')

根据您的 PHP 回显,似乎是错误的。 regularCheckbox 是一个类,而不是一个 id,所以你需要选择 $(".regularCheckbox:checked')。顺便说一句,您不应该在循环中重复输出相同的 id,id 必须是唯一的。

另外,您可能只想在表单上使用 jQuery 的 serialize() method

【讨论】:

  • 谢谢,我把#换成了.但仍然单击一个框不会重新加载 DIV...任何可能出错的线索?
  • 不重新加载 DIV”是什么意思? change 处理程序没有被调用吗? Ajax 没有执行吗? Ajax 响应是否无效,只有 DOM 没有更新?
  • $('#itemMain').load('index.php?color='+id);当我选中/单击该框时,这部分不会发生
  • 为什么你认为它不会发生?它会在您的错误控制台中中断并显示异常还是什么?
  • Uncaught ReferenceError: $ is not defined index.php:26 Uncaught ReferenceError: $ is not defined index.php:61 Uncaught ReferenceError: $ is not defined index.php:73
猜你喜欢
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 2015-07-02
相关资源
最近更新 更多