2011-09-20 102 views
0

我有以下的javascript功能的Javascript日期选择器

window.onload = function(){ 
     new JsDatePick({ 
      useMode:2, 
      target:"datafield", 
      dateFormat:"%d-%M-%Y" 
     }); 
    }; 


<input name="fromdate" type="text" id="datafield" /> 

<input name="todate" type="text" id="datafield" /> 

,当我点击没有fromdate文本字段日期选择器显示,当我点击TODATE文本字段,日期选择器不显示,由于相同的ID,它是如何克服?

回答

1

正如你所正确地指出的问题是重复ID。

将您的代码更改为如下所示,以便为每个文本框使用不同的ID。

window.onload = function(){ 
     new JsDatePick({ 
      useMode:2, 
      target:"fromdate", 
      dateFormat:"%d-%M-%Y" 
     }); 
         new JsDatePick({ 
      useMode:2, 
      target:"todate", 
      dateFormat:"%d-%M-%Y" 
     }); 
    }; 


<input name="fromdate" type="text" id="fromdate" /> 

<input name="todate" type="text" id="todate" /> 
2

实际上你不能有两个具有相同ID的元素,它是无效的。要么改变你的代码从一个类名的工作,或更改第二日期选择器输入的ID(例如,以datafield2),并在你的JavaScript中添加一行:

new JsDatePick({ 
    useMode:2, 
    target:"datafield2", 
    dateFormat:"%d-%M-%Y" 
}); 
+0

它更像是4号线,这是一个图书馆不是他的代码

$(function() { $(".datepicker").datepicker(); }); 

。 – Shedokan

+0

不,这是一行代码分散在5行以上的可读性。那么,如果它是一个图书馆呢?这个库是否奇妙​​地覆盖了CSS id的规则? – Clive

+0

不,但是从他的体验来看,他看起来并不像他有足够的经验去改变图书馆的代码。 而我与你有关改变ID和添加多行代码... – Shedokan

0
window.onload = function(){ 
     new JsDatePick({ 
      useMode:2, 
      target:"fromdate", 
      dateFormat:"%d-%M-%Y" 
     }); 
new JsDatePick({ 
      useMode:2, 
      target:"todate", 
      dateFormat:"%d-%M-%Y" 
     }); 
    }; 


<input name="fromdate" type="text" id="fromdate" /> 

<input name="todate" type="text" id="todate" /> 

ID更换需要一个时间,如果在同一页2相似的ID名称

+0

@Cyber​​nate:我们都发布在最终..... – K6t

0

为什么不使用jquery ui's datepicker?然后用其中的一类datepicker已经被添加到每个文本框

<input name="fromdate" type="text" id="fromdate" class="datepicker"/> 
<input name="todate" type="text" id="todate" class="datepicker"/> 
+0

我在这个错误.. – Krishna

+0

@克里希纳什么?你知道这个答案和问题是2年2个月14天吗?试着问一个新问题。 – Eonasdan

+0

okey我正在问新的问题,但它与此有关,我将在几个小时内发布链接到okey。 – Krishna