2012-12-21 174 views
0

我試圖顯示警告,當父按鈕被點擊,但它不能正常工作。如果過去任何一天的輸入值都顯示警告。用戶輸入值驗證

下面是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(); 
    }; 
}); 

回答

2

您應該將輸入的日期轉換爲日期目標代碼

$('.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(); 
     } 
    } 
});​ 

這裏試試:http://jsfiddle.net/TM5EK/

+0

如果您嘗試運行此變量,則會使用'var'關鍵字重新聲明變量。 – adeneo

+0

thanx的建議,修正 – bukart

+0

看起來更好,+ 1- – adeneo

1

我想這是因爲你只是比較輸入值和日期對象,而不是2日期對象。

嘗試使用new Date(hiredate)將對象變爲對象。

小提琴:http://jsfiddle.net/UjVRY/

從小提琴

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' 

+0

不確定我關注。有一個例子嗎? – dbizzell

+0

嗯試過了,但仍然不起作用 – dbizzell

+0

更新了一個例子。 – qooplmao