如果我只知道他的价值,我怎么知道输入是否被检查?

时间:2010-05-25 07:49:23

标签: php javascript jquery

我的php代码中有一个动态输入,如下所示:

<input type="checkbox" id="advantage[]" name="advantage[]" value="Special Option" />

我需要知道它是否已被检查......我可以在代码中以相同的格式进行多次检查,我的大脑因为找不到解决方案而受伤!

感谢4的帮助!

9 个答案:

答案 0 :(得分:1)

var isSpecialOptionSet = $("input[value='Special Option']:checked").length ? true : false;
// isSpecialOptionSet will now be true/false according to the state of the checkbox.

答案 1 :(得分:1)

var isChecked = $('input:checkbox[value="Special Option"]').is(":checked");

答案 2 :(得分:1)

客户端:

$('input[type=checkbox][name="advantage[]"][value="Special Option"]').is(':checked')

服务器端:

in_array('Special Option', $_POST['advantage'])

请注意,您不应多次使用相同的ID。

答案 3 :(得分:0)

如果您尝试确定是否在回发后检查了它,则复选框值数据仅在选中时才会在$ _POST中传递给服务器。否则,该值为空或为空。

如果您在回发之前尝试确定是否已经检查过,那么您需要在PHP中编写一些将在客户端处理的Javascript。

答案 4 :(得分:0)

您可以使用:已选中

http://api.jquery.com/category/forms/

答案 5 :(得分:0)

你可以这样做:

$(function(){
  $('input[type="checkbox"]').each(function(){
    if ($(this).is(':checked'))
    {
      alert('Checked');
    }
    else
    {
      alert('Not Checked');
    }
  });
});

如果所有复选框中的 相同 ,则甚至基于值:

$(function(){
  $('input[value="Special Option"]').each(function(){
    if ($(this).is(':checked'))
    {
      alert('Checked');
    }
    else
    {
      alert('Not Checked');
    }
  });
});

答案 6 :(得分:0)

您不能/不应该使用此格式的多个复选框,因为ID必须是唯一的。

var isChecked = $('#advantage\\[\\]').is(':checked');

答案 7 :(得分:0)

你在HTML格式中设置“advantage []”女巫变成了php一个数组。 你需要告诉那个特定部分的价值是什么。

例如:“advantage ['checkbox1']”然后在php中你会得到

如果选中该复选框,则

$_POST['advantage']['checkbox1'] will be equal to 'Special Option';

另一方面,如果你不能修改:

<?php
if(in_array('Special Option', $_POST['advantage'])){
       // checkbox is checked
       // it can only be identified by an id witch you will receive by
       // foreach($_POST['advantage'] as $id => $val);
}
?>

答案 8 :(得分:-1)

如果您想使用jQuery,请点击此链接,您将能够看到它是如何完成的:

JQuery HowTo: How to check if checkbox is checked using jQuery

Checked selector - jQuery