简体   繁体   English

单选按钮值未定义

[英]Radio button value undefined

I have the following radio buttons, 我有以下单选按钮,

PHP Code: PHP代码:

<form class="small-box-footer" style="text-align:left;padding:10px;"  method="post" name="nameHere">
<?php
 $query = "SELECT * FROM subject";
 $result = mysql_query($query);
 while ($row39 = mysql_fetch_array($result)) {
    $Referrer_ID = $row39['Subject_ID'];
    $Referrer_Name = $row39['Subject_Name'];      
?>
<input type="radio" class="subject-selected" name="subject" value="<?=$Referrer_ID?>"> <?=$Referrer_Name?><?=$Referrer_ID?><br />                       
<?php } ?>                          
</form> 

HTML generated: 生成的HTML:

<input type="radio" class="subject-selected" name="subject" value="2"> GCSE Maths2<br />

<input type="radio" class="subject-selected" name="subject" value="3"> GCSE English3<br />

<input type="radio" class="subject-selected" name="subject" value="4"> GCSE Science4<br />

<input type="radio" class="subject-selected" name="subject" value="5"> GCSE Art5<br />

<input type="radio" class="subject-selected" name="subject" value="6"> GCSE Sociology6<br />

<input type="radio" class="subject-selected" name="subject" value="8"> OCR Nationals ICT8<br />

<input type="radio" class="subject-selected" name="subject" value="9"> OCR Nationals Sports9<br />

<input type="radio" class="subject-selected" name="subject" value="10"> OCR Nationals Business Studies10<br />

<input type="radio" class="subject-selected" name="subject" value="11"> Entry Science11<br />

<input type="radio" class="subject-selected" name="subject" value="12"> Functional Skills English12<br />

<input type="radio" class="subject-selected" name="subject" value="13"> Functional Skills Maths13<br />

<input type="radio" class="subject-selected" name="subject" value="14"> ESOL14<br />

<input type="radio" class="subject-selected" name="subject" value="15"> Preparation for Working Life15<br />                                                        
  </form>

Below is the JavaScript 以下是JavaScript

 $( ".centre-selection" ).each(function() {
          if ($('input.subject-selected').is(':checked'))
            alert($('input[name=subject]:selected').val());
            //$( this ).attr( 'href', '?module=<?=$_REQUEST['module']?>&Subject='+ $( this ).attr('data-subject')+ '&Centre_Selected_ID='+ $( this ).attr('data-centre')+ '&Class_Selected_Year='+ $( this ).attr('data-year')+ '&Class_Selected_All='+ $( this ).attr('data-all-centre')+ '&StartDate='+ $( this ).attr('report_date_start')+ '&EndDate='+ $( this ).attr('data-attendance-check-end'));
            $( this ).attr( "href", '?module=module_progress_report&Subject='+ $('input[name=subject]:selected').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');
 } );

Problem: 问题:

$('input[name=subject]:selected').val() does not pick up the value of the radio button. $('input[name=subject]:selected').val()不会获取单选按钮的值。 It shows result undefined . 它显示结果undefined I also tried method 1 and method 2 but both the results are undefined. 我也尝试了方法1方法2,但结果均未定义。

Update 更新资料

I updated my JavaScript and now it looks like, 我更新了JavaScript,现在看起来像这样,

$( document ).ready(function() {  

$('.subject-selected').change(function(){
           // $("#centre-class-menu").toggle();
$("#alert").toggle();
$("#centre").toggle();
$(".range").toggle();
});

var value;
$(".subject-selected").change(function() {//changed the class to correct class selector
  if ($(this).is(':checked')) {//use $(this).is(':checked')
    console.log($(this).val());
    value = $(this).val();
    console.log(value);
  }
});


      $( ".centre-selection" ).each(function() {

            //$( this ).attr( 'href', '?module=<?=$_REQUEST['module']?>&Subject='+ $( this ).attr('data-subject')+ '&Centre_Selected_ID='+ $( this ).attr('data-centre')+ '&Class_Selected_Year='+ $( this ).attr('data-year')+ '&Class_Selected_All='+ $( this ).attr('data-all-centre')+ '&StartDate='+ $( this ).attr('report_date_start')+ '&EndDate='+ $( this ).attr('data-attendance-check-end'));
            $( this ).attr( "href", '?module=module_progress_report&Subject='+value+ '&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');
          } );


});

I see nothing displayed on console and value send is undefined. 我在控制台上看不到任何内容,并且未定义值发送。

 $(".subject-selected").change(function() {//changed the class to correct class selector if ($(this).is(':checked')) {//use $(this).is(':checked') console.log($(this).val()); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="radio" class="subject-selected" name="subject" value="2">GCSE Maths2 <br /> <input type="radio" class="subject-selected" name="subject" value="3">GCSE English3 <br /> <input type="radio" class="subject-selected" name="subject" value="4">GCSE Science4 <br /> <input type="radio" class="subject-selected" name="subject" value="5">GCSE Art5 <br /> <input type="radio" class="subject-selected" name="subject" value="6">GCSE Sociology6 <br /> <input type="radio" class="subject-selected" name="subject" value="8">OCR Nationals ICT8 <br /> <input type="radio" class="subject-selected" name="subject" value="9">OCR Nationals Sports9 <br /> <input type="radio" class="subject-selected" name="subject" value="10">OCR Nationals Business Studies10 <br /> <input type="radio" class="subject-selected" name="subject" value="11">Entry Science11 <br /> <input type="radio" class="subject-selected" name="subject" value="12">Functional Skills English12 <br /> <input type="radio" class="subject-selected" name="subject" value="13">Functional Skills Maths13 <br /> <input type="radio" class="subject-selected" name="subject" value="14">ESOL14 <br /> <input type="radio" class="subject-selected" name="subject" value="15">Preparation for Working Life15 <br /> 

  1. Use change, to get the value during changing event 使用更改,以便在更改事件期间获取价值
  2. Use $(this).is(':checked') to check if checked 使用$(this).is(':checked')检查是否选中

I think you are missing the quote:" or ' in your example: $('input[name="subject"] :selected').val() 我认为您在示例中缺少引号:“或':$('input [name =” subject“]:selected')。val()

https://api.jquery.com/attribute-equals-selector/ https://api.jquery.com/attribute-equals-selector/

Please try this 请尝试这个

 $( document ).ready(function() { $(".subject-selected").change(function() { if ($(this).is(':checked')) { alert($(this).val()); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="radio" class="subject-selected" name="subject" value="2">GCSE Maths2 <br /> <input type="radio" class="subject-selected" name="subject" value="3">GCSE English3 <br /> <input type="radio" class="subject-selected" name="subject" value="4">GCSE Science4 <br /> <input type="radio" class="subject-selected" name="subject" value="5">GCSE Art5 <br /> <input type="radio" class="subject-selected" name="subject" value="6">GCSE Sociology6 <br /> <input type="radio" class="subject-selected" name="subject" value="8">OCR Nationals ICT8 <br /> <input type="radio" class="subject-selected" name="subject" value="9">OCR Nationals Sports9 <br /> <input type="radio" class="subject-selected" name="subject" value="10">OCR Nationals Business Studies10 <br /> <input type="radio" class="subject-selected" name="subject" value="11">Entry Science11 <br /> <input type="radio" class="subject-selected" name="subject" value="12">Functional Skills English12 <br /> <input type="radio" class="subject-selected" name="subject" value="13">Functional Skills Maths13 <br /> <input type="radio" class="subject-selected" name="subject" value="14">ESOL14 <br /> <input type="radio" class="subject-selected" name="subject" value="15">Preparation for Working Life15 <br /> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM