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