我試圖用datepicker複製一個字段。該字段被複制,但日期選擇器僅在前兩個字段中顯示...我嘗試了其他解決方法,例如將一個live
偵聽器添加到調用日期選擇器的字段,但沒有去。在動態創建的輸入上實例化datepicker
var dc=0;
jQuery('#otherRecAdd').click(function(){
dc++;
var d=$('othrRecDates').innerHTML;
var nd=document.createElement('div');
nd.innerHTML=d;
var divID='othrDate'+dc;
nd.id=divID;
jq(nd).attr('id','orInID'+dc);
var ind=jq(nd).find('input');
var indID='orDate'+dc;
jq(ind).attr('id',indID)
document.getElementById('otherReccuranceDiv').appendChild(nd);
var x=jq("input[name=othrRdate]");//x.length increments correctly; it is finding all of the inputs
x.datepicker();
})
//this doesn't work either
jq(function(){
jq('input[name=othrRdate]').live('click', function() {
jq(this).datepicker({showOn:'focus'}).focus();
});
});
所以表單從一個輸入開始並且datepicker工作正常。如果我複製該輸入,則重複輸入正常工作。但是,在此之後,任何後續重複的輸入都無法按預期工作。下面是生成的html:
<label for="otherRec">Other Reccurance</label></b>
<input name="otherRec" id="otherRec" onclick='toggleDiv("othrRecDates");' type="checkbox">
<div id="othrRecDates" style="">
<b>Date:</b>
<input class="hasDatepicker" name="othrRdate" id="date" type="text">
<br>
</div>
<div id="orInID1">
<b>Date:</b>
<input class="hasDatepicker" name="othrRdate" id="orDate1" type="text">
<br>
</div>
<div id="orInID2">
<b>Date:</b>
<input class="hasDatepicker" name="othrRdate" id="orDate2" type="text">
<br>
</div>
<div id="orInID3">
<b>Date:</b>
<input class="hasDatepicker" name="othrRdate" id="orDate3" type="text">
<br>
</div>
我只是意識到,這不會爲我工作,要麼爲name
屬性必須是唯一的。我想更好的解決方案將類似於上述,但類名選擇而不是名稱。
任何想法都會令人驚歎。
編輯:是的,我是混合原型和jQuery:/
感謝發佈這個,這正是我的問題。調整我的代碼,說$(this).removeClass(「hasDatepicker」)。datepicker()。focus();解決了我的問題。 – adriandz 2011-12-22 21:17:11