デフォルト値が設定されているフォームがあります。これは「空のフィールド」として扱われる必要があります。私はこのテーマに関する別の投稿を見ましたが、今のところ何も機能させることができていません。それでも、フィールドが空の場合にのみエラーがスローされますが、「デフォルト値」がある場合にもエラーがスローされるはずです。
単純な単一フィールド形式のコードは次のとおりです。
<title>Untitled Document</title>
<form name="contactInfo" action="##" method="post" enctype="multipart/form-data">
<div class="step">
<div style="float:left; width:45%;">
<input type="text" name="email" value="enter your email" tabindex="1"
onClick="this.select();" required defaultInvalid />
</div>
</div>
<input type="submit" />
</form>
<!--- form validation to handle non blank default fields --->
<script language="javascript" type="text/javascript">
$().ready(function() {
jQuery.validator.addMethod("defaultInvalid", function(value, element)
{
switch (element.value)
{
case "enter your email":
if (element.name == "email") return false;
break;
default: return true;
break;
}
});
// validate the comment form when it is submitted
$("#contactInfo").validate(
{
rules:
{
email: "required defaultInvalid"
},
messages:
{
email: "Please input your email."
}
});
});
</script>
2つの問題:
- 空の場合にのみ検証エラーをトリガーします(デフォルト値の場合ではなく)
- 追加したカスタムメッセージが表示されません。
私はstackOverflowとウェブを良い時間検索しましたが、解決策を見つけることができませんでした。