ユーザーに入力値を入力するフォームがあります。いくつかの初期入力私はjavascriptを使用してカスタム検証を行っています。フォームの最後に、 "html required attribute"を使用して1つのフィールドが検証されます。しかし、ユーザが送信ボタンをクリックすると、必要な属性を持つ入力ボックスは、エラー表示の順序に従わず、以前のものにチャンスを与える代わりにメッセージを最初に表示する。下に私はコードと画像を追加し、その名前が空であることを示すのではなく、直接場所入力ボックスにジャンプします。これは単にエンドユーザを混乱させます。なぜこの問題が発生し、どのように解決するのですか?カスタム検証前にHTML5の検証が実行されます
<html>
<head>
<script>
function validate(){
var name = document.forms['something']['name'].value.replace(/ /g,"");
if(name.length<6){
document.getElementById('message').innerHTML="Enter correct name";
return false;
}
}
</script>
</head>
<body>
<form name="something" action="somewhere" method="post" onsubmit="return validate()">
<div id="message"></div>
Enter Name : <input type="text" name="name" /> <br/> <br/>
Enter Location : <input type="text" name="location" required="required" /> <br/> <br/><br/> <br/>
<input type="submit" name="submit" />
</form>
</body>
</html>
私がしたいですバリデーション時にhtmlフィールドを順序どおりに持つかどうかを理解する。少なくともここではhtmlは入力フィールドをどの順序で与えても気にしないように見えますが、それは必須の属性に直接行きます。それは何らかのバグですか? – WeAreRight
@ JoneDotosvky名前なしで場所を入力した場合は機能しますか?私はそれがちょうど既定でオンになっているデフォルトHTML5検証だと思う。フォームを送信できないため、jsスクリプトが実行されません。 – caramba
すべて正常に動作しています。名前のJavascript検証も機能します。問題は、名前の代わりに場所の検証が最初に実行されることだけです。 – WeAreRight