我的_form.gsp中的单选按钮编码为

<table>
  <thead>
    ...
  </thead>
  <tbody>
    <g:each in="${locationList}" status="i" var="location">
      <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
        ...
        <td><g:radio name="location" value="${location.id}" onclick="showLocInfo(this)" checked="${false}" /></td>
      </tr>
    </g:each>
  </tbody>
</table>

我隐藏的div是
<div id="locationTable" style="display: none">
  <table style="width: 100%;">
    <tr>
      <td>HERES LOCATION INFORMATION</td>
    </tr>
  </table>
</div>

我的create.gsp头部包含一些JavaScript,目前无法正常运行
<head>
  ...
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script type="text/javascript">
    $(function() {
      $(".datepicker").datepicker();
    });

    jQuery.noConflict();

    function showLocInfo(elem){
      if (elem.checked == "true") {
        document.getElementById('locationTable').style.display = "block";
      }
      if (elem.checked == "false") {
        document.getElementById('locationTable').style.display = "none";
      }
    }
  </script>
</head>

日期选择器有效,但显示位置信息功能无效。我究竟做错了什么?

最佳答案

在您的showLocInfo中,elem.checked是 bool(boolean) 值,而不是字符串。由于您使用的是2个if语句而不是if/else,因此不会执行任何块,因此不会产生任何行为。

尝试改用:

if (elem.checked === true) {
    // ..

10-06 02:35