1

我正在使用一个

<g:link ...

出于安全原因,我想作为 POST 而不是 GET 发送按钮的标签。

有没有办法做到这一点?我不能使用

<g:actionSubmit 

因为我使用的是 Twitter Bootstrap 的 Glyphicons(即我需要将图标放在标签之间,它不能放入 value 属性中)

<g:link class="btn btn-success" action="someAction" id="class.id"> <i class="icon-ok"></i> Save </g:link>

所以,我需要一个链接,我可以将 ID 作为 POST 传递,并包含一个标签结构,如:

<g:someTag ... > SOME LABEL </g:sometag>

感谢您对此事的任何帮助!


未捕获的错误:语法错误,无法识别的表达式。转义字符?

如果在结帐过程中选择了特定的单选框,我将尝试显示 ID 为“在线支付”的 div 元素。

到目前为止,我有以下内容:

<div id="online-payments" style="display: none;">
    Test
</div>

对于 javascript:

jQuery(document).ready(function(){
jQuery("radio[@name='payment\[method\]']").click(function(){
if (jQuery("radio[@name='payment\[method\]']:checked").val() == 'checkmo')
jQuery("#online-payments").show();
});
});

这是一个 Magento 商店,所以我使用无冲突模式,因为原型库。

问题归结为收音机的名称。Magento 默认情况下是付款[方法](我试图更改它,但看起来它会给我带来比我预期的更多的工作)。

所以它真的归结为转义那些括号 [],我以为我做到了,但即便如此,它仍然给我这个错误:

Uncaught Error: Syntax error, unrecognized expression: radio[@name='payment[method]'] 

这里有什么问题?

4

2 回答 2

3

另一种方法是使用 g:remoteLink。它默认使用 POST

<g:remoteLink action="someAction" id="${someObj.id}" update="saveStatus">Save</g:remoteLink>
于 2014-04-17T18:03:30.037 回答
0

1.我的建议是在 g:link 它自己处理对动作和控制器的调用之前使用 Ajax

喜欢:

<g:link class="btn btn-success"  id="class.id" onclick='UsingPost();'>SOME LABLE HERE </g:link>
<script type='text/javascript'>
function UsingPost(){
    jQuery.ajax({
        type:'POST',
        data:{"model":${pleaseUseTheModelyouHaveLoaded}"}, 
        url:'${createLink(action: 'save')}',
        success:function(data,textStatus){
        jQuery('#success').html(data);},
        error:function(XMLHttpRequest,textStatus,errorThrown){}
        });
}
</script>

或参考这篇文章 https://stackoverflow.com/questions/17360606/grails-spring-security-core-ajax-authentication

于 2013-07-16T14:59:20.850 回答