将参数传递给grails中的JQuery

时间:2016-02-14 20:38:03

标签: jquery grails

我的GSP中有radioGroup

<g:each in="${questions}" var='qu'>
<span id="qEnglish-label" class="property-label"><g:message code="questions.qEnglish.label" default="Q English" /></span>

                    <span class="property-value" aria-labelledby="qEnglish-label"><g:fieldValue bean="${qu}" field="qEnglish"/></span>

<g:radioGroup class='radioGroup'   values="['good','med','bad']"   name="radio${radioName++}" labels="['good','med','bad']"> ${it.label} : ${it.radio} </g:radioGroup>

我添加change监听器在jquery代码中调用AJAX,如下所示,我需要传递参数,假设来自qu.ideach的{​​{1}} value到下面的Jquery代码而不是radioButton的值,如何做到这一点。

Jquery代码:

qId,qAns

1 个答案:

答案 0 :(得分:1)

好的,这真的只是一个jQuery问题。您已经掌握了获得答案所需的内容,但您需要有一种方法可以轻松获取问题。我认为数据属性可以解决这个问题:

<g:radioGroup class='radioGroup' 'data-question-id'="${qu.id}" values="['good','med','bad']"   name="radio${radioName++}" labels="['good','med','bad']"> ${it.label} : ${it.radio} </g:radioGroup>

我不完全确定该属性语法。但是,你可以很容易地抓住你需要的两个论点......

$('.radioGroup').on('change',function(){

var args=JSON.stringify({qId: $(this).attr('data-question-id'), qAns: $(this).val()});
$.ajax({
    url:'${createLink(controller:'questions' , action:'tempSaveAjax')}',
    type:'POST' ,
    data:{ json:args }, 
    success: function(data, textStatus, jqXHR) {
        alert (" done " );
            },
    error: function(data,  textStatus,  errorThrown) { // Handle errors here
        alert ("erroooor : " + textStatus/*data.responseText*/);
        }

    });

});