2016-03-03 78 views
1

我有一個帶有2個datepicker的html頁面,我必須在日/月/年框中選擇日期。查找直接父級jQuery

我的代碼工作正常時,我有1個日期選擇器,但在第一個總是寫日期爲2

<div class="pickergroup"> 
    <input name="dateDay01" id="dateDay01">/
    <input name="dateMonth01" id="dateMonth01">/
    <input name="dateYear01" id="dateYear01"> 
    <input name="calendario" class="calendario" id="datepicker01"> 
</div> 
<div class="pickergroup"> 
    <input name="dateDay02" id="dateDay02">/
    <input name="dateMonth02" id="dateMonth02">/
    <input name="dateYear02" id="dateYear02"> 
    <input name="calendario" class="calendario" id="datepicker02"> 
</div> 

而且日期選擇器時:

$(function() { 
    $(".pickergroup").find('[id^="datepicker"]').datepicker({ 
     firstDay: 0, 
     monthNames: ['January', 'February', 'March', 
     'April', 'May', 'June', 
     'July', 'August', 'September', 
     'October', 'November', 'December' 
     ], 
     dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 
     dayNamesShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], 
     dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], 
     dateFormat: 'dd-mm-yy', 
     onSelect: function (selectedDate) { 
      var mycontainer = $(this).parent('.pickergroup'); 
      var id = $(this).attr('name').substring(10,12); 
      var selectedDay = selectedDate.substring(0, 2); 
      var selectedMonth = selectedDate.substring(3, 5); 
      var selectedYear = selectedDate.substring(6); 
      mycontainer.find('#dateDay' + id).val(selectedDay); 
      mycontainer.find('#dateMonth' + id).val(selectedMonth); 
      mycontainer.find('#dateYear' + id).val(selectedYear); 
     } 
    }); 
}); 

如何選擇正確的父母點擊date02時?

+1

爲什麼都有相同的ID「datepicker」? –

+1

爲兩個datepicker使用不同的'id'。 – Azim

回答

2

這兩個日期選擇器具有相同的id,所以JavaScript代碼不能選擇它們。爲每個日期選擇器分配一個不同的ID。

+0

我這樣做,並更改一行我更新了代碼! – cucuru

+0

它們仍然具有相同的ID - 「datepicker01」 – TamarG

+0

,當然 - 將「find」行更改爲新的所需id:find('[id^=「datepicker」]')find('[id^= 「datepicker01」]') – TamarG

1

我認爲你不需要id =「datepicker」,如果有2個元素具有相同的id,這並不好。你可以試試這個

$(function() { 
    $(".pickergroup").find(".calendario").datepicker({ 
     firstDay: 0, 
     monthNames: ['January', 'February', 'March', 
     'April', 'May', 'June', 
     'July', 'August', 'September', 
     'October', 'November', 'December' 
     ], 
     dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 
     dayNamesShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], 
     dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], 
     dateFormat: 'dd-mm-yy', 
     onSelect: function(selectedDate) { 
      var mycontainer = $(this).parent('.pickergroup'); 
      var selectedDay = selectedDate.substring(0,2); 
      var selectedMonth = selectedDate.substring(3,5); 
      var selectedYear = selectedDate.substring(6); 
      mycontainer.find('[id^="dateDay"]').val(selectedDay); 
      mycontainer.find('[id^="dateMonth"]').val(selectedMonth); 
      mycontainer.find('[id^="dateYear"]').val(selectedYear); 
     } 
    }); 
    }); 
+0

抱歉,我錯了,我已經編輯它 –