Javascript 选中复选框时,“选择”下拉列表应显示为“不工作”

Javascript 选中复选框时,“选择”下拉列表应显示为“不工作”,javascript,php,jquery,html,Javascript,Php,Jquery,Html,基本上,我有一个复选框。 如果选中该复选框,则应显示下拉列表。如果未选中,则不应显示下拉列表。不幸的是,它不起作用。下面是我的代码。这不是完整的代码,但足以看出问题所在 <script> $('[name="Lab Elective"]').on('change', function() { $('#Lab Elective g').toggle(this.checked); }).change(); </script> <input type="checkb

基本上,我有一个复选框。 如果选中该复选框,则应显示下拉列表。如果未选中,则不应显示下拉列表。不幸的是,它不起作用。下面是我的代码。这不是完整的代码,但足以看出问题所在

<script>
$('[name="Lab Elective"]').on('change', function() {
  $('#Lab Elective g').toggle(this.checked);
}).change();
</script>

<input type="checkbox" name="Lab Elective" id="Lab Elective" value="some value">

<select id="Lab Elective g" name="Lab Elective g">
<option value="some value">some value</option>
</select>

ID中不能有空格。将ID中的空格更改为其他内容,例如-

HTML

JS

避免使用jQuery.toggle,并小心使用ID。 使用jQuery选择包含空格的ID更为棘手

$document.readyfunction{ $'[name=Lab optional]'。在“更改”上,函数{ 如果这个被选中了{ $[id='Lab optional g'].show; }否则{ $[id='Lab-g'].hide; } }; }; 一些价值
只需从id中删除空格,这应该可以工作:我不想删除空格,因为我的代码是用这些空格设置的。我必须做很多改变。有没有其他方法可以让它工作?@James spaces在基于HTML规范的IDs中无效。如果您没有编写有效的HTML,您可能会遇到其他问题。我建议你减少损失,现在就改变。出于这个原因,我不打算提供一个解决方案。绝对值得考虑将代码重构为符合标准的,IDs中没有空格。@bassxzero,你是不是因为不满才否决了我!?哇。@TonyChiboucas你可以这么说。老实说,我不太在乎,但向他展示一个变通方法可能会在将来引起更多的问题。另外,使用隐藏和显示是很神奇的,我不建议使用它。它仍然不起作用。这个脚本必须放在某个特定的地方吗?@James,不应该,只要你正确加载了jQuery。我将添加一个代码段。是的,我将等待该代码段,看看它为什么不适用于me@James,给你。使用Win10:FF和Chrome如果您的项目中此jQuery有问题,您可能需要检查版本,并查看控制台是否有错误。然后将引用更改为$'[id=Lab Optional g]',但这是一种较慢的引用方式。错误做法。仅供参考,HTML4.1标准不允许ID中有空格。HTML5允许。
<input type="checkbox" name="Lab Elective" id="Lab Elective" value="some value">

<select id="Lab-Elective-g" name="Lab Elective g">
<option value="some value">some value</option>
</select>
.hidden {
     display:none;
}
$('[name="Lab Elective"]').on('change', function() {
  $('#Lab-Elective-g').toggleClass('hidden',!$(this).is(':checked'));
}).change();
<script>
function show_hide_sel()
{
   if( $('input[name="Lab Elective"]').is(':checked') )
   {
     $('#Lab_Elective_g').show();
   }
   else
   {
     $('#Lab_Elective_g').hide();
   }
}


$(document).ready(function() {

  $('input[name="Lab Elective"]').on('click', function() {
    show_hide_sel();
  });

  show_hide_sel();
});
</script>

<input type="checkbox" name="Lab Elective" id="Lab Elective" value="some value">

<select id="Lab_Elective_g" name="Lab Elective g">
<option value="some value">some value</option>