我试图调用id为aaa * .bbb的所有输入字段,其中*是1到100之间的数字。
我的代码是:
$(document).ready(function(){
$(PATTERN).datepicker({
showOn: 'both'
});
});
我的问题是:
如果id中的一个输入字段只是“aaa.bbb”并且我使用PATTERN = "#aaa\\.bbb"
那么我可以打开日历,但是当我点击一个日期时,没有日期写入输入字段date ...但是如果我从id中省略了点并使用PATTERN = "#aaabbb"
我可以按日历选择日期。因此,我得出结论,身份证中的一个点不允许我按日历选择日期。怎么可能?
假设我从(1)解决了点问题,我实际上只想调用相关的INPUT字段。 (再次假设输入字段的id之一只是“aaa.bbb”)所以我尝试了PATTERN = "input[id$='\\.bbb']"
之类的东西
但它不起作用(日历按钮根本不会出现。即使在这里解释:http://api.jquery.com/category/selectors/为了逃避点字符我必须用两个反斜杠转义字符:\\.
“
但是,当我尝试PATTERN = "input[id$='\.bbb']"
时,会出现日历按钮,但再次单击日历中的日期不会导致日期写入输入字段。他们在文档中说我只需要使用一个\来逃避点?
假设我解决了(1)和(2)中的点问题,我怎么写这个模式的形式是aaa * .bbb ???
谢谢!
答案 0 :(得分:1)
$('[id^="aaa"][id$=".bbb"]').each(function() {
var check = this.id.match(/aaa(\d+)\.bbb/);
if (check != null && check[1] >= 1 && check[1] <= 100) {
// ID matches required pattern
$(this).datepicker({ showOn : 'both' });
}
});
在这里演示 - http://jsfiddle.net/zjcN7/1/