注少し背景については、 この質問を参照してください...
したがって、私の(非常に基本的な)フォーム検証は機能しています-一種の.
@
メールアドレスフィールドの入力値をチェックするとき、メールアドレスに値があり(つまり、空白ではない)、および文字が含まれていることを確認したい.
ので、これを行いました...
<div width="100%" class="con1">
<div class="lable">
<label for="email">Email Address *</label>
</div>
<input type="text" name="email" class="span4">
</div>
<script>
$('input[type=submit]').click(function() {
var parentname = $(this).parent('div');
console.log('Form used: ' + parentname);
var email = 0,
// Validate email
if ($('.' + parentname.attr('class') + ' #email').val() == '')
{
alert('Please enter a valid email address');
}
else
{
if (($('.' + parentname.attr('class') + ' #email').val().contains('@')) && ($('.' + parentname.attr('class') + ' #email').val().contains('.')))
{
email = 1;
}
else
{
alert('Please enter a valid email address');
}
}
});
</script>
少し奇妙に見えますが、上記のリンクされた質問で述べたように複雑であるため、セレクターについて少し異なる考え方をする必要がありました。
基本的$('.' + parentname.attr('class') + ' #email')
には書くことと同じです($('.con1 #email')
HTML構造に基づいて正しいと信じているセレクターとして使用している場合.
操作を試みました$('.' + parentname.attr('class').child('#email')
が、要素に「子」メソッドがないというエラーが表示され続けました
yahoo.com からのスパムが大量に届いていたので、yahoo.com からのメールをブロックするために、同じ原則を実際に使用して作成した以前のフォームに基づいて、これを書きました。
if ($("#contact-email").val().contains("yahoo.com")) {
$(".errmsg").text("Domain yahoo.com has been banned due to excessive spam, please use another domain.");
}
else
{
email = 1;
}
ここに貼り付けた 2 番目のサンプルは機能しますが、電子メール フィールドをより徹底的に検証する最初のサンプルは、このエラーを返し続けます。
Uncaught TypeError: undefined のメソッド 'contains' を呼び出せません
これがどのようにあるサイトで機能し、別のサイトでは機能しないのか理解できません。何かが足りないような気がするので、誰かがそれを見てくれるとありがたいです。
前もって感謝します!