2013-04-20 109 views
1

我添加Greasemonkey的脚本来调剂一个网页,我的工作,但我遇到了问题。我期待添加默认值到表单字段所以每次我填写表格时,我没有添加相同的值。ID属性有括号吗?

当它们与括号括起来的形式对idname属性看! 例如:

<input id="[[FormGen]]Contact" type="text" 
    value="" name="[[FormGen]]Contact"> 
</input> 


现在,我没有进入任何服务器端代码,而我从源代码查看此。有一点需要注意的是,这种形式非常好。我很好奇这些括号可能做什么或意思,但这不是我的根本问题。

问题的根源是,当我去获取与jQuery值它不承认,我使用的ID。换句话说,这是行不通的:

("#[[FormGen]]Contact").val("test"); 

还要说明一点 - 形式具有约20总场。所有ID和名称属性值均以[[FormGen]]开头。

回答

2

你可以逃脱他们:

$('#\\[\\[FormGen\\]\\]Contact') 

还是用这样的:

$(document.getElementById('[[FormGen]]Contact')) 
+0

演示:http://jsfiddle.net/DerekL/qjAGp/ – 2013-04-20 23:48:30

+0

它的工作原理!谢谢! – stephenthedev 2013-04-21 00:23:27

0

如果他们都开始用[FormGen],这意味着你可以只用剩下的选择它们id属性:

$('input[id$="Contact"]') 
+3

它可能会产生意想不到的结果http://jsfiddle.net/DerekL/2FmXF/ – 2013-04-21 00:02:05

0

如果您的标记有特殊字符的许多标识,可以考虑使用tihs soluti从 jQuery's FAQ。它按照jQuery的要求转义所有字符。

我喜欢的,他们有什么建议此nullsafe版本:

function jqid (id) { 
    return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,)/g, '\\$1'); 
}