同じページに2つのフォームがありますが、1つのフィールド(この場合は電子メール)を検証しようとしていますが、両方のフォームのエラーを表示するだけなので、入力フィールドを検証するだけです。jQueryは類似のフォームで単一入力を検証します
HTML:
<div class="general-form">
<div class="email-error" style="display:none;">
<p>You need valid email</p>
</div>
<div class="form-wrap">
<div class="form-row">
<input id="from-email" type="email" name="email" placeholder="Your Email" />
</div>
<div class="btn-row">
<button class="submit-btn">Submit</button>
</div>
</div>
</div>
<div class="general-form">
<div class="email-error" style="display:none;">
<p>You need valid email</p>
</div>
<div class="form-wrap">
<div class="form-row">
<input id="from-email" type="email" name="email" placeholder="Your Email" />
</div>
<div class="btn-row">
<button class="submit-btn">Submit</button>
</div>
</div>
</div>
JS:
$(".submit-btn").on("click", function() {
var $this = $(this);
var valid_email = $this.find("#from-email").val();
if (/(.+)@(.+){2,}\.(.+){2,}/.test(valid_email)) {
return true;
} else {
$this.parents().find(".email-error").show();
return false;
}
});
全体的に、私は検証を通過するようにそれを得ることができますが、エラーメッセージがフォームと私の両方のために示していそれを入手する方法がわからないので、その特定のフォームのエラーメッセージだけが表示されます。私はチェーンをあまりにも遠くに押し上げていると思っています。両方のフォームをテストしていますが、それが意味をなさない場合は、どちらを具体的にターゲットにするのか覚えていません。
IDは一意である必要があります。 'from-email'というIDを持つ2つの入力が無効です – bassxzero
これらのフォームは'