2015-12-08 3 views
1

Моих радиокнопками в моем _form.gsp кодируются какGrails кнопка радио показать скрытые DIV с OnClick

<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> 

Датпикер работает, но функция информации о местоположении в этом нет. Что я делаю не так?

ответ

2

В вашем showLocInfo, elem.checked является булевым, а не строкой. Поскольку вы используете операторы 2 if, а не if/else, ни один из блоков не выполняется, что приводит к поведению.

Попробуйте использовать вместо:

if (elem.checked === true) { 
    // .. 
Смежные вопросы