Grails无法从控制器

时间:2017-06-09 11:33:10

标签: ajax grails checkbox gsp

我在模板中添加了一个复选框,并使用AJAX来监督更改。当复选框更改时,控制器中的操作被调用,我想要根据复选框设置进行不同的操作。 但我不知道是否检查过它。我打印了params列表,你可以看到是否选中了复选框,但我无法使用:

if(checkbox.checked){做某事}其他{做别的事情}

即使取消选中该复选框,我也总是会{做某事}。

Heres som代码:

<script>
    $(document).ready(function(){
        $( document ).on('change', '.useWeeklyVolumes', function ( event ){ 
            $.ajax({
                url: '${g.createLink( controller:'offerDetail', action:'useWeeklyVolumes' )}',
                data: {ckbWeeklyVolumes:this.checked, id:this.id},
                type: 'get'
            }).success( function ( data ) { $( '#nono' ).html( data );     });
        });
    });
</script>

模板的一部分:

<label for="ckbWeeklyVolumes">
    <g:message message="Specify volumes weekly"/>
</label>
<g:checkBox id="${offerDetail.id}" class="useWeeklyVolumes" name="ckbWeeklyVolumes" value="${offerDetail?.useWeeklyVolumes}" />

<g:if test="${offerDetail?.useWeeklyVolumes}">
---- Here the part of the template which is controlled by the checkBox
</g:if>

控制器操作方法:

def useWeeklyVolumes() {
println("useWeeklyVolumes - params: "+params)
def od = OfferDetail.get(params.id)
od.useWeeklyVolumes = params.ckbWeeklyVolumes
od.save(flush:true)
if (od.useWeeklyVolumes) {
    println("useWeeklyVolumes - ON: ")
} else {
    println("useWeeklyVolumes - OFF: ")
}
render(template: "offerDData", model: [offerDetail: od])

}

控制台打印输出:

useWeeklyVolumes - params: [ckbWeeklyVolumes:true, id:30, controller:offerDetail, format:null, action:useWeeklyVolumes]
useWeeklyVolumes - ON: 
useWeeklyVolumes - params: [ckbWeeklyVolumes:false, id:30, controller:offerDetail, format:null, action:useWeeklyVolumes]
useWeeklyVolumes - ON: 

0 个答案:

没有答案