根据使用jquery在表单中输入的日期创建重定向

时间:2012-02-02 22:56:36

标签: jquery forms redirect

我有一个表单,其中包含一些带有不同数据选项的复选框以及一个用于输入日期的文本字段。

日期文本字段的逻辑是,如果输入的日期是在5/15/12之前,那么它们将在表单提交后被定向到页面A或者如果输入的日期是在5/15/12之后,那么它们将是转到第B页。

当用户选中复选框并输入日期时,他们将在表单提交后定向到特定页面。

到目前为止,我有复选框工作,根据他们选择的内容,他们将被定向到特定页面。现在我需要弄清楚如何对日期文本字段使用相同的逻辑,但我不知道如何这样做。

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 :(得分:0)

您将不得不使用Javascript测量日期,并获得差异,并且您将获得一个以毫秒或天为单位的数字,具体取决于您如何转换日期(var d = diff(dateA, dateB))

然后你拿[d]并通过一个开关

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

请记住这是伪代码,并且case语句没有意义,但它们应该给你一个想法。

答案 1 :(得分:0)

试试这个,也许(通过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>