Javascript $(';输入[name=nameofinput]:选中(';).val()';s值未定义

Javascript $(';输入[name=nameofinput]:选中(';).val()';s值未定义,javascript,jquery,Javascript,Jquery,我正在尝试将输入值发送到另一个页面 $( this ).attr( "href", '?module=module_progress_report&Subject='+ $('input[name=subject]:checked').val()+ '&Centre_Selected_ID='+ encodeURIComponent($( this ).attr('data-centre')) + '&Class_Selected_Year='+ encodeUR

我正在尝试将输入值发送到另一个页面

    $( this ).attr( "href", '?module=module_progress_report&Subject='+ $('input[name=subject]:checked').val()+ '&Centre_Selected_ID='+ encodeURIComponent($( this ).attr('data-centre')) + '&Class_Selected_Year='+ encodeURIComponent($( this ).attr('data-year')) + '&Class_Selected_All='+ encodeURIComponent($( this ).attr('data-all-centre')) +'&StartDate='+$('#report_date_start').val()+'&EndDate=18/12/2016');
这里,

这总是返回未定义的。未选择该值。如果我选择其中一个选项作为默认值,则会存储其值。我需要做什么

编辑 以下是PHP和HTML的示例:

<form class="small-box-footer" style="text-align:left;padding:10px;"  method="post" name="nameHere">

                              <?php
                              $query = "SELECT * FROM subject";
                            //$query="SELECT * FROM $base_name";
                            $result = mysql_query($query);
                            while ($row39 = mysql_fetch_array($result)) {
                                $Referrer_ID = $row39['Subject_ID'];
                                $Referrer_Name = $row39['Subject_Name'];      
                                ?>

<input type="checkbox" class="subject-selected" name="subject" value="<?=$Referrer_ID?>"> <?=$Referrer_Name?><?=$Referrer_ID?><br />

<?php } ?>

</form>     


您需要将选中的
替换为选中的

$('input[name=subject]:selected').val()

尝试在控制台上运行相同的代码
$('input[name=subject]:checked').val()
,并查看它给出了什么

对于<代码>:选中
#确保输入的元素类型为<代码>复选框

您也可以使用此选项:

$('input[name="input_name"]').is('checked'); // will return true/false

确切返回的
未定义的
可能是
[name=“subject”]
取决于
jQuery
版本…@Rayon is说它是添加进去的?你能显示呈现的html而不是php吗?据我所知,您的php正在吐出非法html。请确保您至少检查了一次。这取决于它是
元素还是
,在这种情况下,
:checked
是正确的,因为这无关紧要,两种语法都很好。@Rayon可能,但这似乎自1.0版以来没有改变,我认为不太可能。一个“取决于jQ版本”的笼统答案并不特别重要useful@meskobalazs我想你需要参考一下这些问题important@sams通常是的,但正如文档中所说的“值:一个属性值。可以是一个有效的标识符,也可以是一个带引号的字符串”。因此,在本例中,如果
($('input.checkbox\u check')。为(':checked'))警报($('input[name=subject]:checked').val();
但它从未运行过。@Fahauddin-浏览器控制台中有错误吗?我认为应该是$('input.subject selected')。Is(':checked')@我更新了我的代码。浏览器控制台中没有错误。首先,我想告诉你
$('input[name=subject]:checked')。val()
不会产生标签的字符串文本,它将返回第一个元素值。请参见此处的小提琴:
$('input[name=subject]:selected').val()
 Syntax: $( "input[value='name']" )
 try this 
 $('input[name="subject"]:checked').val()
$('input[name="input_name"]').is('checked'); // will return true/false