【问题标题】:Input a jquery sentence in a grails gsp tag在grails gsp标签中输入一个jquery句子
【发布时间】:2019-03-19 15:27:00
【问题描述】:

当我尝试在 grails <g:link> 标记中使用 jQuery 语句时遇到多重编译错误

var ul = $("#authorList > ul");
ul.append('<li><g:link action="show" controller="author" id="'+$('#authorID').val()+'">+'+$('#authorField').val()+'</g:link></li>')

我只是在 id="" 属性中使用 jquery 时遇到错误

ul.append('<li><g:link action="show" controller="author" id="">+'+$('#authorField').val()+'</g:link></li>')

页面正在运行,但我无法获取动态链接,它的语法如何正确?


URI:/ComplexTables/book/create 类
org.codehaus.groovy.control.MultipleCompilationErrorsException
消息:启动失败: 19:美元符号后的非法字符串主体字符;解决方案:要么 转义文字美元符号 "\$5" 或将值表达式括起来 "${5}" @ line 19, column 210. l()\'"', 35, it) { return "'+$('#authorI ^ 1 个错误


grails-app\views\book_form.gsp 的第 35 行左右

function appendAuthor(ev) {
34:        var ul = $("#authorList > ul");
35:        ul.append('<li><g:link action="show" controller="author" id="'+$('#authorID').val()'">+'+$('#authorField').val()+'</g:link></li>')
36:    }
37:</script>

【问题讨论】:

  • gsp 是在服务器上预编译的。如果 jQuery 能够做到这一点,我会感到非常惊讶。
  • 把js放到外部资源中就可以了
  • 使用外部文件gsp不编译
  • 我会尝试使用没有 gsp 标签的普通
  • 使用正常的 工作,我想用

标签: javascript jquery grails groovy syntax


【解决方案1】:

我不知道 GSP 但一般 ID 不能以数字开头。

"使用除 ASCII 字母、数字、'_'、'-' 和 '.' 以外的字符可能 导致兼容性问题,因为它们在 HTML 4 中是不允许的。 尽管在 HTML 5 中取消了此限制,但应以 ID 开头 用字母表示兼容性。”

如果你只使用 DOM 的 getElementById () 方法而不是 jQuery 是不是更好

ul.append('<li><g:link action="show" controller="author" id="sth_'+document.getElementById('authorID').value+'">+'+document.getElementById('authorID').value+'</g:link></li>')

【讨论】:

  • 在这种情况下id属性不是所有标签的普通id,在这个gsp标签中你把id作为你要显示的元素的主键,gsp把这个标签编译成普通的
  • 我尝试使用 document.getElementbyId 和 gsp 也返回一个编译错误 Expecting '=' after attribute name (action="show" controller="author" id="'+document.getElementById("authorID ").value+'")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2015-06-28
  • 2012-01-29
  • 1970-01-01
  • 2012-08-25
  • 2010-12-26
  • 1970-01-01
相关资源
最近更新 更多