我的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.id
和each
的{{1}} value
到下面的Jquery代码而不是radioButton
的值,如何做到这一点。
Jquery代码:
qId,qAns
答案 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*/);
}
});
});