Создать перенаправление на основе даты, введенной в форму, используя jquery - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть форма, в которой будут несколько флажков с различными параметрами данных, а также текстовое поле для ввода дат.

Логика для текстового поля даты заключается в том, что если введенная дата до 5/15/12, то они будут направлены на страницу A после отправки формы ИЛИ, если введенная дата будет после 15.05.12, они направлено на страницу Б.

Когда пользователь устанавливает флажки и вводит дату, они будут направлены на определенные страницы после отправки формы.

Пока у меня работают флажки, где в зависимости от того, что они выбрали, они будут направлены на определенные страницы. Теперь мне нужно выяснить, как использовать ту же логику для текстового поля даты, но я понятия не имею, как это сделать.

JS
$(document).ready(function() {
$('#myform').submit(function(e) {

    //use instead of return false
    e.preventDefault();

    if($('.milk').is(':checked') && $('.butter').is(':checked')){
        // Butter and milk selected
        window.location = 'http://www.yahoo.com';
    } 
    else if($('.butter').is(':checked')){
        // Only butter selected
        window.location = 'http://www.google.com';
    }   

});

});


HTML
<form name="myform" id="myform" action="" method="POST"> 
<div align="center"><br> 
<input type="checkbox" name="group1" class="milk" value="Milk"> Milk<br> 
<input type="checkbox" name="group1" class="butter" value="Butter"> Butter<br> 
<input type="checkbox" name="group1" class="cheese" value="Cheese"> Cheese<br> 
<input type="submit" value="Submit" /> 
</div> 
</form> 

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Попробуйте, может быть (через Date.parse ):

$('#myform').submit(function(e) {
  var inputDate = Date.parse( $('#myform:datefield').val() );
  var dateX = new Date(2012, /* Notice 5-1 here -> */ 4, 15); // 5/15/2012

  if (inputDate > dateX) {
      // do this (after date X)
  } else {
      // do that before X
  }
}

И где-то в вашей разметке:

<form name="myform" id="myform" ...>
  <input type="text" id="myform:datefield" value="" />
  <button type="submit">GO!</button>
</form>
0 голосов
/ 03 февраля 2012

Вам нужно будет измерить дату с помощью Javascript и получить разницу, и у вас будет число в миллисекундах или днях или что-то в зависимости от того, как вы конвертируете даты (var d = diff(dateA, dateB)).

Затем вы берете [d] и пропускаете его через переключатель

switch(d){
  case >5: gt_five();
  case 5: five();
  case <5: lt_five();
  default: def();
}

Имейте в виду, что это псевдокод, и операторы case не имеют смысла, но они должны дать вам идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...