私の問題を再現するために、この非常に単純なコードを作成しました。入力テキストに値がない場合、フォームは送信されません (正解)。ただし、select 入力が選択されていない (正しくない) 場合は送信されます。ここで非常に基本的なものが欠けている可能性がありますが、何がわかりません。
編集:これが Firefox で機能することに気付きました。クロムではありません。
編集 2: Chrome は、コードにあるものではなく、次のようにページをレンダリングしています。
<option value>Select</option>
理由はありますか?それが重要な場合、それは .razor ページです。しかし、他の調査によると、value="" がないことが Chrome で機能しない理由です。
<form>
<div>
Any Text:
<input type="text" required="required" />
</div>
<div>
Country:
<select required="required">
<option value="">Select</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>
</div>
<div>
<button type="submit">
Test
</button>
</div>
</form>
編集 3:次の回避策を使用して HTML を Chrome で正しくレンダリングするようにしましたが、Chrome での検証はまだ機能しません。
<form>
<div>
Any Text:
<input type="text" required="required" />
</div>
<div>
Country:
<select required="required">
<option value="@blankString">Select</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>
</div>
<div>
<button type="submit">
Test
</button>
</div>
</form>
@code {
string blankString = "";
}
ページ コード ソース:
<select required="required">
<option value="">Select</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>