2

我已经制作了一个 RequestForQuote 表格,我可以在其中添加新职位以获取 RFQ。

在我的情况下,这在基本情况下通过 PHP 很容易完成。工作真的很好。你可能想看看。可在以下位置找到:我的网站

现在我感染了 jquery-virus,只是想添加 datepicker ui(对于我从他们的网页获得的最新版本)。

<input type="text" size="10" id="deldate[] 
     class="datepicker" value="<?php echo $_REQUEST['deldate'][$k]; ?>" />

$k 来自一个 phpfor($k=0;$k<=$NoPos;$k++)循环

javascript代码的工作是这样的:

$(function() {
$('input').filter('.datepicker').datepicker({
        showOn: 'button', 
        buttonImage: 'calender/media/cal.gif', 
        buttonImageOnly: true,
        firstDay: 1,
        dateFormat: 'yy-mm-dd', 
        minDate: 0, maxDate: '+4Y'});

}); 

在浏览器中它看起来很不错,出现了用户界面,我无法选择日期。

但...

如果我在表单中添加另一个位置,这是通过 PHP 完成的,所以我必须提交表单以计算 $NoPos,以前的 inersted 日期会丢失并且我有一个空白的输入字段。

现在有了 onSubmit: function(dateText)我可以得到选定的日期。但是,我无法访问正确的输入字段来输入日期。

所以我的问题很简单:我做错了什么?如果一切都很好,那么有人会请告诉我如何解决这个问题..

我有这样的想法:

for (var i=0;i<=NoPos;i++) {
    var tag = "#deldate"+i;
    $(tag).datepicker({ ... });
}

并使用 php 来<input type="text" size="10" id="lieferdat<?php echo $k; ?>" class="datepicker" />

非常感谢您耐心阅读本文...

以及更多感谢您提供的任何提示

干杯丹尼尔

4

3 回答 3

3

我自己也在寻找相同的东西,我想我找到了诀窍$('input').filter('.datepickerclass').datepicker()
以及相关的输入元素:
class="datepickerclass"

我在上面看到你尝试了类似的东西,但只是按照(那个链接的)食谱对我有用。

于 2009-07-08T14:41:57.970 回答
1

我认为问题不在于日期选择器。datepicker 只是用于在输入字段中填写日期,它不应该与提交给服务器的表单字段有任何关系。无论如何,无论您实际使用多少动态日期选择器,实际上只有一个日期选择器控件 (div) 放置在页面上。您可以为该页面发布相关生成的 HTML 吗?

顺便说一句,看起来(至少在您的示例代码中)您在 id 上缺少引号。如果那在实际代码中,那可能会导致您的问题。

编辑:根据您发布的示例(实际上应该通过编辑而不是作为答案添加到您的问题中),我看到了您的问题。您的输入没有名称参数。只有输入有名称时才会回发输入。

改变这个:

<input type="text" size="10"
       id="lieferdat<?php echo $k; ?>"
       class="datepicker" />

对此:

<input type="text" size="10"
       id="lieferdat<?php echo $k; ?>"
       name="lieferdat<?php echo $k; ?>"
       class="datepicker" />
于 2009-06-06T21:33:09.467 回答
0

这可能有点晚了,但上面的所有建议都对我不起作用,我想出了一个简单的解决方案。

首先,是什么导致了问题:JQuery 将 datepicker 分配给元素 id。如果你正在克隆元素,那么同样的 id 也可能被克隆。哪个 jQuery 不喜欢。无论您单击哪个输入字段,您最终都可能会收到空引用错误或分配给第一个输入字段的日期。

解决方案:

1) 销毁 datepicker 2) 为所有输入字段分配新的唯一 ID 3) 为每个输入分配 datepicker

确保您的输入是这样的

<input type="text" name="ndate[]" id="date1" class="n1datepicker">

在克隆之前,销毁日期选择器

$('.n1datepicker').datepicker('destroy');

克隆后,也添加这些行

var i = 0;
$('.n1datepicker').each(function () {
    $(this).attr("id",'date' + i).datepicker();
    i++;
});

神奇的事情发生了

于 2013-06-17T17:41:12.510 回答