Jquery 用户输入值验证

Jquery 用户输入值验证,jquery,html,validation,Jquery,Html,Validation,我试图在单击父按钮时显示警告,但它无法正常工作。如果输入的值在过去的任何一天都存在,则会显示警告 以下是HTML: <div class="well"> <button class="expando" /> <fieldset class="hire_date_wrapper"> <label>Hire Date</label> <input type="text" name="input_name" /&

我试图在单击父按钮时显示警告,但它无法正常工作。如果输入的值在过去的任何一天都存在,则会显示警告

以下是HTML:

<div class="well">
  <button class="expando" />
  <fieldset class="hire_date_wrapper">
    <label>Hire Date</label>
    <input type="text" name="input_name" /><br />
    <span class="date_warning">Warning message</span>
  </fieldset>
</div>

租用日期

警告信息
以下是js:

$('.expando').click(function(){
    var well = $(this).parents('.well');
    var hiredate = well.children('[name="input_name"]').val();
    var today = new Date();
    if (hiredate < today) {
        well.children('.date_warning').show();
    } else {
        well.children('.date_warning').hide();
    };
});
$('.expando')。单击(函数(){
var well=$(this.parents('.well');
var hiredate=well.children('[name=“input_name”]').val();
var today=新日期();
如果(雇佣日期<今天){
好的,孩子们('.date_warning').show();
}否则{
好的,孩子们('.date_warning').hide();
};
});

我认为这是因为您只是比较输入值和一个日期对象,而不是两个日期对象

尝试将hiredate设置为具有
新日期(hiredate)
的对象

小提琴:

来自小提琴的代码

var now = new Date(),
    hiredate = '2012-10-10',
    hiredateobj = new Date(hiredate);

$('#results_noobj').html((hiredate < now ? 'before' : 'after')+' now');
// Output 'after now'

$('#results_obj').html((hiredateobj < now ? 'before' : 'after')+' now');
// OUtputs 'before now'
var now=new Date(),
hiredate='2012-10-10',
hiredateobj=新日期(hiredate);
$('#results_noobj').html((hiredate

我认为这是因为您只是比较输入值和一个日期对象,而不是两个日期对象

尝试将hiredate设置为具有
新日期(hiredate)
的对象

小提琴:

来自小提琴的代码

var now = new Date(),
    hiredate = '2012-10-10',
    hiredateobj = new Date(hiredate);

$('#results_noobj').html((hiredate < now ? 'before' : 'after')+' now');
// Output 'after now'

$('#results_obj').html((hiredateobj < now ? 'before' : 'after')+' now');
// OUtputs 'before now'
var now=new Date(),
hiredate='2012-10-10',
hiredateobj=新日期(hiredate);
$('#results_noobj').html((hiredate

您应该将键入的日期转换为日期对象

$('.expando').click(function(){
    var well = $(this).parents('.well');
    var hiredate = new Date($( '[name="input_name"]', well).val());
    var today = new Date();
    if ( isNaN( hiredate.getTime() ) ) {
        $( '.date_warning', well ).show();
    } else {
        if (hiredate.getTime() < today.getTime()) {
            $( '.date_warning', well ).show();
        } else {
            $( '.date_warning', well ).hide();
        }
    }
});​
$('.expando')。单击(函数(){
var well=$(this.parents('.well');
var hiredate=新日期($('[name=“input_name”]',well.val());
var today=新日期();
if(isNaN(hiredate.getTime()){
$('.date_warning',well).show();
}否则{
if(hiredate.getTime()

请在此处尝试:

您应该将键入的日期转换为日期对象

$('.expando').click(function(){
    var well = $(this).parents('.well');
    var hiredate = new Date($( '[name="input_name"]', well).val());
    var today = new Date();
    if ( isNaN( hiredate.getTime() ) ) {
        $( '.date_warning', well ).show();
    } else {
        if (hiredate.getTime() < today.getTime()) {
            $( '.date_warning', well ).show();
        } else {
            $( '.date_warning', well ).hide();
        }
    }
});​
$('.expando')。单击(函数(){
var well=$(this.parents('.well');
var hiredate=新日期($('[name=“input_name”]',well.val());
var today=新日期();
if(isNaN(hiredate.getTime()){
$('.date_warning',well).show();
}否则{
if(hiredate.getTime()

在这里试试:

我不知道我是否明白。有没有一个例子?我不太明白。有一个例子吗?如果你尝试运行这个,你会因为用
var
关键字重新说明变量而得到一个错误。thanx对于建议,修复了更新的代码,错误消失了,但对我仍然不起作用。好的,我更新了我的答案。。。选择器有很多错误。。。这对我来说很好是的,看起来像是选择器错误,我在检查你的答案之前就发现了。非常感谢您的帮助,我真的很感激。如果您尝试运行此项,则使用
var
关键字重新说明变量会出现错误。thanx为您提供建议,修复了更新的代码,错误消失了,但对我来说仍然不起作用。好的,我更新了我的答案。。。选择器有很多错误。。。这对我来说很好是的,看起来像是选择器错误,我在检查你的答案之前就发现了。非常感谢你的帮助,我真的很感激。