2016-01-07 13 views
8

私はdeveloper.mozilla.org Data form validation (developer.mozilla.org)に記載されているようにHTML 5でフォーム検証を試みています。私はChromeブラウザでテストしています。 2つの質問。HTML5フォームの入力日時 - ローカルの妥当性確認

  1. 私はdatetime-localの入力タイプを持っているときに、フォームがcheckValidity()に渡すことはできません。 datetime-localの入力形式はかなり厳密です(Chromeは特定の形式にするように強制します)。どうして?
  2. このdatetime-localフィールドは必須フィールドであってはなりません。ユーザーが入力を指定していない場合、どのようにしてそれを通過させるのですか?
+2

'jsbin.comであなたのコードを表示してください'または' jsfiddle.net' – Vuong

+2

問題を再現できません。質問自体にいくつかのコードを追加してください。私が問題を再現するために最も近かったのは、フィールドの一部だけを空白にしておくことでした(しかし、フィールドが不完全で、必要であったために検証エラーが発生しました) –

+1

私は実際にJQueryモバイル私はそれがそれと関係があるかどうかわかりません。しかし、私はもう一度それを試し、サイトにコードを入れて、後でそれを複製できるかどうかを確認します。ありがとう。 – huggie

答えて

0

私は(ユーザーがのみ入力フォーマットYYYY-MM-DDTHHの2つのオプションを持っていた「日時」フェイルドは必須フィールドたクロム46 &クロム46ベータ版でこの問題に出くわしました: MM:値形式のW3Cを参照し、互換性の問題のためMDNを参照して、 PTDHMSをssTZDです)

はので、私は

を使用していませんでした。
<input type="datetime" /> 

か:

<input type="datetime-local" /> 

私が使用:

<input type="text" /> 

そしてDate Jsを日付/時刻を解析するために、ユーザが

userInput = userInput || 'Thu, 1 July 2004 22:30:00'; 
Date.parse(userInput); 

を、入力されたしかし、あなたはDate.jsをスキップすることができますこのようにネイティブJavaScriptを使用してください:Source(MDN

var today = new Date(); 
var birthday = new Date('December 17, 1995 03:24:00'); 
var birthday = new Date('1995-12-17T03:24:00'); 
var birthday = new Date(1995, 11, 17); 
var birthday = new Date(1995, 11, 17, 3, 24, 0); 
var unixTimestamp = Date.now(); // in milliseconds 

またtype="datetime-local"<input>要素はInternet ExplorerまたはFirefoxでサポートされていないことに注意してください(W3Cを参照)が、これを試みることができるしてください:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8" /> 
<head> 
<body> 
<script> 
    var input = document.createElement("input"); 
    input.setAttribute("type", "datetime-local"); 
    document.getElementsByTagName("body").appendChild(input); 
</script> 
</body> 
</html> 
+0

ハギー、私の答えはあなたを助けましたか?問題を解決したかどうか、どうやって共有すればいいですか? –