Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите связать checkbox -> Календарь -> поле Input (https://javascript.ru/forum/jquery/60231-pomogite-svyazat-checkbox-kalendar-pole-input.html)

kot_k_k 18.12.2015 10:46

Помогите связать checkbox -> Календарь -> поле Input
 
Добрый день.

на форме много полей и checkbox к ним, на все это через класс повесил календарь.
пока поля не скрыты - все работает, но надо поля скрыть а по изменению checkbox - вызывать календарь и загонять значение в соответствующее поле.
как это сделать?
пробовал непосредственно в значение value чекбокса - но там сохраняет только 2015 (год) - почему ХЗ.


Код:

<input class ="date_" type="hidden" id="Date_1" name="Date_1" value="0"/>
<input class ="date_" id="IN_1" name="IN_1" type="checkbox" value="1" />
<input class ="date_" type="hidden" id="Date_2" name="Date_2" value="0"/>
<input class ="date_" id="IN_2" name="IN_2" type="checkbox" value="1" />
.....
.....
<input class ="date_" type="hidden" id="Date_N" name="Date_N" value="0"/>
<input class ="date_" id="IN_N" name="IN_N" type="checkbox" value="1" />



$(".date_").datepicker({ dateFormat: 'yy-mm-dd' });});

п.с. сильно не ругайте.

чуть позже
упс в чекбоксе (value) сохраняет значение даты '2015-01-01', вот только когда чекбокс выключается - то дата не сохраняется в value. а надо чтобы дата была как при включении так и при выключении.

рони 18.12.2015 12:25

kot_k_k,
попробуйте ещё раз обьяснить что хотите получить, пока непонятно.

kot_k_k 18.12.2015 12:43

при передаче POST - чекбоксы которые пустые - не передаются.
а у меня на чекбокс повешен календарь, который сохраняет в чекбокс.value дату.
вот и придумалось создать скрытый input и туда внести чекбокс.value.
вот как заставить календарь который вызван одним элементном внести дату в другой элемент - не знаю.

сделал так, правда onchange срабатывает 2 раза - но юзеру об этом не известно.

может есть менее зверский способ?

Код:

...
<input type="hidden" id="Date_IN_28" name="Date_IN_28" value="0"/> 
<input onchange=f(this) class="Date_" id="intTariff_IN_28" name="intTariff_IN_28" type="checkbox" value="1"/>
.....

<script>
$(function() {$(".Date_").datepicker({ dateFormat: 'yy-mm-dd' });});
function f(obj){
    var n11=obj.id;
    var n1="Date"+n11.substr(9);      
     var n2=document.getElementById(n11).value; 
    document.getElementById(n1).value=n2;
}   
</script>


рони 18.12.2015 12:54

Цитата:

Сообщение от kot_k_k
внести дату в другой элемент

строки 21 , 22
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Datepicker - Icon trigger</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
<style type="text/css">
#ui-datepicker-div{
  font-size: 12px;
  margin-top: 20px;
}

</style>
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
  <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <script>
  $(function() {
      $(".date_:checkbox").each(function(indx, el) {
          var picer = $(el).prev().datepicker({
              dateFormat: 'yy-mm-dd',
              altField: el,
              altFormat: "yy-mm-dd"
          });
          $(el).on({
              'click': function() {
                  this.checked ? picer.datepicker("show") : (picer.val(0),this.value=0);
              }
          })
      });
  });
  </script>
</head>
<body>

<input class ="date_" type="hidden" id="Date_1" name="Date_1" value="0"/>
<input class ="date_" id="IN_1" name="IN_1" type="checkbox" value="1" />
<input class ="date_" type="hidden" id="Date_2" name="Date_2" value="0"/>
<input class ="date_" id="IN_2" name="IN_2" type="checkbox" value="1" />
<input class ="date_" type="hidden" id="Date_N" name="Date_N" value="0"/>
<input class ="date_" id="IN_N" name="IN_N" type="checkbox" value="1" />

</body>
</html>

kot_k_k 18.12.2015 16:39

красиво.
спасибо буду разбираться.
:dance:

рони 18.12.2015 16:52

kot_k_k,
вам наверно нужно продумать момент когда - выбрали checkbox но не выбрали дату -- возможно внести дату предварительно или по onClose проверить внесена ли дата ... или как-то иначе ... на сервере например

laimas 18.12.2015 17:10

Цитата:

Сообщение от kot_k_k
при передаче POST - чекбоксы которые пустые - не передаются.
а у меня на чекбокс повешен календарь, который сохраняет в чекбокс.value дату

Не выбранные флажки/радиокнопки не передаются вообще не зависимо от метода передачи формы. Вот только зачем передавать на сервер то, что пользователь не выбрал? Если вы так поступаете, значит серверный скрипт не продуман.


Часовой пояс GMT +3, время: 14:06.