2014-08-27 79 views

回答

0

這根本就不是一個日期,並根據不同的瀏覽器實現這個值是空的或認爲是badInput或typeMismatch的。

如果你想使用這個,你有以下幾種選擇:

  1. 嚴格自己倒空:

$('input[type="date"]') .on('change.empty', function() { var val = $.prop(this, 'value'); if (!val || val == '0000-00-00') { $.prop(this, 'value', ''); } }) .trigger('change.empty') ;

  1. 設置一個novalidate屬性:

```

<form novalidate=""> 
     <!-- ... --> 
</form> 
  1. 使用不同的輸入,如果你也想允許非有效日期:

```

<input type="number" min="0" max="31" /> 
<input type="number" min="0" max="12" /> 
<input type="number" min="0" max="9999" /> 
+0

我會嘗試的第一招,但你肯定的tigger()rrrr;¬) – 2014-08-28 09:28:05

+0

是的,觸發器是爲了事實,您的服務器可能最初呈現此值。事實上,我用命名空間('.empty')觸發change事件使得它變得無懈可擊,只有這個監聽器而不是其他的監聽器被調用。 – 2014-08-28 09:54:54

+0

我剛在這裏添加了一些小的更改。這可能起初看起來很愚蠢,但在出現badInput錯誤的情況下,DOM世界中的值是'',但用戶世界中的值在那裏。 – 2014-08-28 09:57:38