jquery-ui 日期选择器问题

发布于 2024-11-30 01:18:12 字数 974 浏览 0 评论 0原文

嘿伙计们,我有两个 div - id =“form1”,它是内联的,另一个 id =“form2”,它通过 ajax 获取其内容(其中 div 标签在同一页面上提到)。

<div id="form1">
 .
 .form content
 .
 .
</div>
<div id="form2"> //gets content dynamically

现在,我使用了以下日期选择器代码 -

    $(function() {
    $( "#datepicker,#datepicker1" ).datepicker({ dateFormat: 'yy-mm-dd' });
});

现在,我已将日期选择器 id 应用到 f​​orm1 中的字段,并且它运行良好。 问题出在第二种形式。第二种形式是由循环生成的,我使用以下逻辑将 id datepicker1 应用到它 -

<? foreach ($list as $key => $value): ?>
    <? $dt='';
    if($key=='date_of_purchase'){

        $dt="datepicker1";
    }?>
        <tr><td><?= $key ?> :</td><td><input id="<?=$dt;?>" type="text" name='<?= $key ?>' size="25" value='<?php echo $value; ?>'/></td></tr>
    <? endforeach; ?>

现在,id datepicker1 已完美应用于所需字段,但 jquery datepicker 弹出窗口没有按预期出现。

解决办法是什么??

hey guys I have two divs- with id="form1" which is inline and the other with id="form2" which gets its content through ajax(where the div tag is mentioned on the same page).

<div id="form1">
 .
 .form content
 .
 .
</div>
<div id="form2"> //gets content dynamically

Now, I have used the following datepicker code-

    $(function() {
    $( "#datepicker,#datepicker1" ).datepicker({ dateFormat: 'yy-mm-dd' });
});

Now, I have applied the datepicker id to a field in form1 and it works perfectly.
The problem is in the second form. The second form gets generated by loop and i have used the following logic to apply the id datepicker1 to it-

<? foreach ($list as $key => $value): ?>
    <? $dt='';
    if($key=='date_of_purchase'){

        $dt="datepicker1";
    }?>
        <tr><td><?= $key ?> :</td><td><input id="<?=$dt;?>" type="text" name='<?= $key ?>' size="25" value='<?php echo $value; ?>'/></td></tr>
    <? endforeach; ?>

Now, the id datepicker1 is getting applied perfectly to the required field but the jquery datepicker popup is not coming up as expected.

Whats the solution??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妄断弥空 2024-12-07 01:18:13
$("#datepicker1").live("click",function() {
    $(this).datepicker({showOn:'focus',dateFormat: 'yy-mm-dd'}).focus();
 });
$("#datepicker1").live("click",function() {
    $(this).datepicker({showOn:'focus',dateFormat: 'yy-mm-dd'}).focus();
 });
旧梦荧光笔 2024-12-07 01:18:13

id="form2" 通过ajax获取其内容

好吧,这就是你的问题:)

添加日期选择器功能的 javascript 代码可能在 ajax 事件完成之前执行。尝试在加载第二个表单的内容后加载日期选择器。

id="form2" which gets its content through ajax

Well, there's your problem :)

The javascript code that adds the datepicker functionality is probably executed before the ajax event is finished. Try and loading the datepicker for the second form after it's content has loaded.

眼眸里的那抹悲凉 2024-12-07 01:18:13

jquery 函数仅在 dom 首次加载时运行一次。当您加载 ajax 内容时,它不会重新触发。解决此问题的最佳方法是使用附加到父元素的 jquery 委托函数。只需为您希望日期选择器提供“日期选择器”类的输入(或其他选择它们的方式)即可。像这样的东西。

$('#parentID').delegate('.datepicker', 'focus', function() {
    $(this).datepicker({ dateFormat: 'yy-mm-dd' });
});

我假设“parentID”是两种形式的某些父元素的 ID。

The jquery function is only running once when the dom is first loaded. It doesn't refire when you load ajax content. The best way to fix this is to use the jquery delegate function attached to a parent element. Just give the inputs that you want to have a datepicker the class of 'datepicker' (or some other way to select them). Something like this.

$('#parentID').delegate('.datepicker', 'focus', function() {
    $(this).datepicker({ dateFormat: 'yy-mm-dd' });
});

I'm assuming that 'parentID' is the ID of some parent element of both forms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文