【问题标题】:Escape character twice, java and javascript两次转义字符,java和javascript
【发布时间】:2012-07-14 04:50:13
【问题描述】:

我想在 JSF 中获取一个文本框的 ID 来用 jQuery 绑定一个 keyup 事件。

我在 javascript 代码中有 $('#A3023\\:formId\\:textboxId').live('keyup', function(){...});,它工作正常。但我必须在服务器端调用 JavaScript。

所以,我尝试使用$('#A3023\\\\:formId\\\\:textboxId') \ 的双重转义,但它不起作用。

我正在使用 liferay 调用 JavaScript

JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), 'script code');

我对@9​​87654325@ 进行了一些测试。它仍然有效,但没有任何 ID。 请问有什么建议吗?

【问题讨论】:

    标签: javascript jquery escaping liferay


    【解决方案1】:

    在 JavaScript 中,\ 也是一个转义字符。因此,通过在 jQuery 选择器的字符串中添加双反斜杠,您实际上只是包含了一个文字单反斜杠字符——然后 jQuery 以某种方式将其解释为冒号/句点的内部转义字符。

    现在,由于\ 字符也是 Java 转义字符,这意味着生成相同的字符串文字,您无需进行任何更改。

    即将字符串 "$(\"#A3023\\:formId\\:textboxId\")" 传递到您的服务器端执行方法就足够了。

    【讨论】:

    • 我在服务器端脚本失败...我在这个 javascript 上使用 json 并将这个脚本放在客户端,也许它不是很好的解决方案,但它可以工作
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2011-09-10
    • 2018-04-29
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多