通过函数触发jquery datepicker

时间:2011-05-24 16:12:52

标签: jquery jquery-ui-datepicker

我有很长的日期字段列表。允许jQuery将datepicker分配给具有datepicker类的所有项目是创建一个弹出脚本(脚本的效果是运行了很长时间,你想要停止脚本,是或否)更不用说它需要一段时间来呈现文档。当我们删除datepicker类时,几乎立即呈现页面。所以,我想要做的是输入字段,其中日期通常会填充一个触发器(链接或图形),可以单击该触发器来触发日期选择器弹出日历。这样,我们只需要在实际需要它的字段上提供弹出日历。

ID不可用,只有name属性。

    <tr>
    <td><input type='text' name='StartDate' /> <span onclick='ShowCalendar()'>Calendar</span></td>
    <td>other fields</td>
    <td>more fields</td>
    </tr>

3 个答案:

答案 0 :(得分:0)

您可以使用“this”关键字将当前元素传递给ShowCalendar函数。然后,您可以使用它作为参考,通过使用jQuery函数遍历dom来查找相应的日期字段。在您的示例中,您可以使用prev()函数。

<tr>
<td><input type='text' name='StartDate' /> <span  onclick='ShowCalendar(this)'>Calendar</span></td>
<td>other fields</td>
<td>more fields</td>
</tr>

答案 1 :(得分:0)

我尝试了以下内容:

<script type="text/javascript">
    function createDatepicker(input) {
        $(input).datepicker().datepicker("show");
    }
</script>

<input type="text" name="someText" /><br />
<input type="text" name="someDate" onclick="createDatepicker(this)" /><br />
<input type="text" name="someText" /><br />
<input type="text" name="someDate" onclick="createDatepicker(this)" /><br />

使用这个答案,我构建了上述解决方案: How to run date picker on the first onclick event?

答案 2 :(得分:0)

您需要在页面中加载日期选择器文件。然后使用这样的东西 在下面的代码中,“todo_date”是一个textfield id,用于触发jquery datepicker。

$( "#todo_date" ).datepicker();
function myFunc(){
  $("#calendar_img").click(function(e) { 
     $("#todo_date").datepicker("show");
  });
}

希望这有帮助