1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
---
title: ValidityState
slug: Web/API/ValidityState
tags:
- API
- Constraint Validation API
- Forms
- HTML DOM
- Interface
translation_of: Web/API/ValidityState
---
<div>{{APIRef("HTML DOM")}}</div>
<p><strong><code>ValidityState</code></strong> インターフェイスは、制約の検証に関して、要素が取りうる<em>妥当性の状態</em>を表します。要素の値が不正な場合に、なぜ検証に失敗するのかを知る手がかりにもなります。</p>
<h2 id="Properties">プロパティ</h2>
<p>下記のプロパティはどれも Boolean を返します。<code>true</code> は指定された検証が失敗したことを表します。ただし <code>valid</code> プロパティだけは例外で、 <code>true</code> が要素の値がすべての制約に適合していることを表します。</p>
<dl>
<dt>{{domxref("ValidityState.badInput", "badInput")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> はブラウザーが処理できない入力値をユーザーが入力したことを示します。</dd>
<dt><code>customError</code> {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、その要素のカスタム検証メッセージが {{domxref('HTMLObjectElement.setCustomValidity', 'setCustomValidity()')}} メソッドによって空でない文字列に設定されているかどうかを示します。</dd>
<dt>{{domxref("ValidityState.patternMismatch", "patternMismatch")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{htmlattrxref("pattern", "input")}} の指定と一致しないことを示し、 <code>false</code> は一致することを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} 擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.rangeOverflow", "rangeOverflow")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{htmlattrxref("max", "input")}} 属性で指定された最大値を超えていることを示し、 <code>false</code> はその最大値以下である場合を示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} および {{cssxref(":out-of-range")}} の各擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.rangeUnderflow", "rangeUnderflow")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{htmlattrxref("min", "input")}} 属性で指定された最小値未満であることを示し、 <code>false</code> はその最小値以上であることを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} および {{cssxref(":out-of-range")}} の各擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.stepMismatch", "stepMismatch")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{htmlattrxref("step", "input")}} 属性で決められた規則に合わないこと (つまり、step の値で割り切れないこと) を示し、 <code>false</code> は刻みの規則に合っていることを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} および {{cssxref(":out-of-range")}} の各擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.tooLong", "tooLong")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{domxref("HTMLInputElement")}} または {{domxref("HTMLTextAreaElement")}} オブジェクトの <code>maxlength</code> で指定された長さを超えていることを示し、 <code>false</code> は長さがその最長値以下であることを示します。 <em><strong>注:</strong> Gecko ではこのプロパティが <code>true</code> になることはありません。要素の値の長さが <code>maxlength</code> を超えないようになっているからです。</em> <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} および {{cssxref(":out-of-range")}} の各擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.tooShort", "tooShort")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が {{domxref("HTMLInputElement")}} または {{domxref("HTMLTextAreaElement")}} オブジェクトの <code>minlength</code> で指定された長さに満たないことを示し、 <code>false</code> は長さがその最短値以上であることを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} および {{cssxref(":out-of-range")}} の各擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.typeMismatch", "typeMismatch")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> は値が ({{htmlattrxref("type", "input")}} が <code>email</code> または <code>url</code> の場合に) 要求された構文に合っていないことを示し、<code>false</code> は構文が正しいことを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} 擬似クラスに一致します。</dd>
<dt><code>valid</code> {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> はその要素がすべての制約検証に適合し、合格したとみられることを示し、 <code>false</code> はいずれかの制約に適合しなかったことを示します。 <code>true</code> の場合、 CSS の {{cssxref(":valid")}} 擬似クラスに一致します。それ以外の場合は CSS の {{cssxref(":invalid")}} 擬似クラスに一致します。</dd>
<dt>{{domxref("ValidityState.valueMissing", "valueMissing")}} {{ReadOnlyInline}}</dt>
<dd>{{jsxref("Boolean")}} で、 <code>true</code> はその要素に {{htmlattrxref("required", "input")}} 属性があるものの、値がないことを示し、 <code>false</code> はそうではないことを示します。 <code>true</code> の場合、その要素は CSS の {{cssxref(":invalid")}} 擬似クラスに一致します。</dd>
</dl>
<h2 id="Specifications">仕様書</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ SpecName('HTML WHATWG', 'form-control-infrastructure.html#validitystate', 'ValidityState') }}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>現行の標準</td>
</tr>
<tr>
<td>{{ SpecName('HTML5.1', 'sec-forms.html#validitystate-validitystate', 'ValidityState') }}</td>
<td>{{Spec2('HTML5.1')}}</td>
<td>前回のスナップショット {{SpecName('HTML5 W3C')}} から変更なし</td>
</tr>
<tr>
<td>{{ SpecName('HTML5 W3C', 'forms.html#validitystate', 'ValidityState') }}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td>このインターフェイスを含む {{SpecName('HTML WHATWG')}} の最初のスナップショット</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
<p>{{Compat("api.ValidityState")}}</p>
<h2 id="See_also">関連情報</h2>
<ul>
<li><a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">ガイド: 制約検証</a></li>
<li><a href="/ja/docs/Learn/Forms/Form_validation">チュートリアル: フォームデータの検証</a></li>
</ul>
|