1

我正在添加一个 Greasemonkey 脚本来为我工作的页面增添趣味,但我遇到了问题。我希望将默认值添加到表单字段中,因此每次填写表单时都不必添加相同的值。

查看表单上的idandname属性时,它们被括号括起来!例如:

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


现在,我无法访问任何服务器端代码,我正在从源代码中查看它。需要注意的一点是,这种形式工作得非常好。我很好奇这些括号可能做什么或意味着什么,但这不是我的根本问题。

根本问题是,当我使用 jQuery 获取值时,它无法识别我使用的 id。换句话说,这是行不通的:

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

还有一点需要注意 - 表格总共有大约 20 个字段。所有 ID 和 Name 属性值都以 开头[[FormGen]]

4

3 回答 3

2

你可以逃避它们:

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

或者使用这样的东西:

$(document.getElementById('[[FormGen]]Contact'))
于 2013-04-20T23:46:18.247 回答
0

如果它们都以 [[FormGen]] 开头,这意味着您可以通过 id 属性的其余部分来选择它们:

$('input[id$="Contact"]')
于 2013-04-20T23:51:24.940 回答
0

如果您的标记有许多带有特殊字符的 ID,请考虑使用 jQuery 常见问题解答中的此解决方案。它根据 jQuery 的要求转义所有字符。

我喜欢他们建议的这个 nullsafe 版本:

function jqid (id) {
  return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,)/g, '\\$1');
}
于 2015-12-11T00:55:17.290 回答