0

我在一个页面中使用 3 个注册表单,所有 3 个表单都有单独的表单和提交按钮。在所有 3 种形式中,都有一个日期列。为此,我使用 JQuery 日期选择器。

<script type="text/javascript">
    window.onload = function(){
        new JsDatePick({
            useMode:2,
            target:"inputField",
            dateFormat:"%d-%M-%Y"
        });
};
</script> 

并在日期的 HTML 表单字段中

<input type="text" size="12" name="date" id="inputField" />

现在,我想为所有表单应用这种类型的日期选择器,但是当我尝试时,只有 1 个日期选择器在工作。我也尝试过更改字段 ID,但所有东西都不起作用,现在我无法更改日期选择器,因为我已经在数据库和某些查询中完成了它的使用。

4

3 回答 3

0

ID 必须是唯一的,并且从为您的日历脚本找到的文档看来,它不接受类,所以最简单的方法是这样做:

<script type="text/javascript">
window.onload = function(){
    new JsDatePick({
        useMode:2,
        target:"inputField1",
        dateFormat:"%d-%M-%Y"
    });
    new JsDatePick({
        useMode:2,
        target:"inputField2",
        dateFormat:"%d-%M-%Y"
    });
    new JsDatePick({
        useMode:2,
        target:"inputField3",
        dateFormat:"%d-%M-%Y"
    });
};

HTML:

<input type="text" size="12" name="date" id="inputField1" />
...
<input type="text" size="12" name="date" id="inputField2" />
...
<input type="text" size="12" name="date" id="inputField3" />
于 2013-05-17T18:39:43.827 回答
0

你的答案在这里找到:

https://stackoverflow.com/a/7486261/2394152

您实际上不能有两个具有相同 ID 的元素,这是无效的。更改您的代码以使用类名,或更改第二个 datepicker 输入的 ID(例如更改为 datafield2)并在您的 javascript 中添加另一行:

new JsDatePick({   useMode:2,   target:"datafield2",   dateFormat:"%d-%M-%Y" });
于 2013-05-17T18:41:46.533 回答
0

除了使用类或手动实例化,您还可以使用该方法JsDatePicker通过正则表达式选择匹配的 inputField 的 ID 。$.filter

(function($, JsDatePick){
    var $inputFields = $("input").filter(function(){
        return this.id.match(/^inputField\d+$/);
    });

    $.each($inputFields, function(){
        new JsDatePick({
            useMode:2,
            target:this.id,
            dateFormat:"%d-%M-%Y"
        });
    });
})(jQuery, JsDatePick);

^标记字符串的开头,是inputField来自您的 ID,该\d+部分允许其后跟任何数字并$标记字符串的结尾。

于 2013-06-17T19:23:42.083 回答