1

3 つの選択入力日付 (日、月、年) があるという問題があります。対応する非表示の入力フィールド値を使用してそれらを入力したいと思います。jqueryを使用してそれを行う方法について誰かが良い考えを持っていますか?

ちなみに、すべてが同じファイルにあり、非表示フィールドの値は、それぞれの親が選択したボックスに入力する必要があります

<select class="day dateselect">
  <option>5</option>
  <option>6</option>
  <option>7</option>
</select>
<select class="month dateselect">
  <option data-date='1'>January</option>
  <option data-date='2'>February</option>
  <option data-date='3'>March</option>
</select>
<select class="year">
  <option>2010</option>
  <option>2011</option>
  <option>2012</option>
</select>
<input type="hidden" id="startDate" value="2010/1/18"/>

<select class="day dateselect">
  <option>17</option>
  <option>18</option>
  <option>19</option>
</select>
<select class="month dateselect">
  <option data-date='1'>January</option>
  <option data-date='2'>February</option>
  <option data-date='3'>March</option>
</select>
<select class="year">
  <option>2010</option>
  <option>2011</option>
  <option>2012</option>
</select>
<input type="hidden" id="endDate" value="2011/3/19"/>

<select class="day dateselect">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
<select class="month dateselect">
  <option data-date='1'>January</option>
  <option data-date='2'>February</option>
  <option data-date='3'>March</option>
</select>
<select class="year">
  <option>2010</option>
  <option>2011</option>
  <option>2012</option>
</select>
<input type="hidden" id="birthDate" value="2010/1/1"/>

ありがとう。

4

1 に答える 1

0

非表示の各入力の値を取得して分割し、前の要素の値を設定します。

$('input[type="hidden"]').each(function(_,el) {
    var date = el.value.split('/');
    $(this).prevAll('.day').first().val(date.pop());
    $(this).prevAll('.month').first().find('option[data-date="'+date.pop()+'"]').prop('selected',true);
    $(this).prevAll('.year').first().val(date.pop());
});

フィドル

于 2013-09-18T07:54:30.440 に答える