2014-04-23 42 views
0

我使用笨表單驗證,在我所有的投入我有這樣的事情:如何在jQuery Datepicker中記住選定的日期,如果驗證未通過?

<input type="text" id="someId" name="someId" value="<?php echo set_value('someId'); ?> /> 

和完美的作品。但是,如果瀏覽器無法識別日期標記,則使用輸入類型'date'或jquery Datepicker時,日期字段會重置。這是我對那場確切的代碼:

<input type="date" id="fecnac" name="fecnac" 
value ="<?= isset($_SESSION['fech_nacimiento']) ? $_SESSION['fech_nacimiento'] :   
set_value('fecnac'); ?>" /> 

我有一個會話標籤,因爲一旦成功地提交的值存儲在一個會話變量。但如果它沒有通過驗證,我使用codeigniter中的'set_value()'。問題是它不起作用。

如果表單沒有通過驗證,還有另一種方法可以記住用戶選擇的日期嗎?有或沒有codeigniter。

+0

格式應該是YYYY-MM-DD。單個數字的日期和月份應填充0.請檢查值。 –

+0

是的,我有dateFormat:'yy-mm-dd'在jquery函數 – Ant100

+0

爲什麼不使用$ _POST而不是$ _SESSION? – Dan

回答

0

我已經找到了一個解決方案,在這裏它是萬一別人有同樣的問題:

  1. 像傑伊·巴特的評論指出,日期必須在正確的格式。 jQuery的日期選擇器應該是這樣的:

    $("#datepicker").datepicker({ 
        dateFormat: 'yy-mm-dd' 
    }); 
    
  2. 對我來說,因爲我使用笨,爲外地記住值應爲:

    value="<?php set_value('datepicker'); ?> 
    

    這是行不通的因爲我忘了將$ this-> form_validation-> set_rule()添加到我的Controller中的該字段。如果你想讓CI的set_value()函數正常工作,你需要先set_rule(),結果是這對我來說是新的。

相關問題