私はjQuery Validate pluginを使用してフォームに電子メールフィールドを検証し、別のユーザーが電子メールをまだ取得していないことを確認するajaxリクエストを行います。私は、フォーム上の「提出」ヒットするたびに、それは最初に確認メールが取られていないようにするAJAX要求を行いますし、それは意志、しかしValidateはajaxチェックでフォームを送信しません
//make sure email field is on form before adding rule
if ($(".unique_email").is("*")) {
//remote validation
$(".unique_email").rules("add", {
remote: "http://test.nethop.com/test.cgi",
messages: {
remote: "This email is already in use"
}
});
}
:私はこのようなルールを追加することによってそう電子メールが大丈夫と妥当性を確認しても送信しないでください。あなたはもう一度提出をヒットしなければならないし、それは提出されます。誰がなぜこれが分かっていますか?
問題を示すjsfiddleを設定しました。クローム開発ツールや火元爆弾を使用している場合は、Ajaxリクエストが行われていて、true
を返していますが、まだ送信していないことがわかります。
HTML
<form id="listing" method="post">
<ul>
<li>
<label for="username">Email *</label>
<input type="text" name="username" id="username" autocomplete="off"
class="email required unique_email" value="[email protected]" />
</li>
<li>
<input type="submit" name="submit" id="submit" class="btn" value="Save"
/>
</li>
</ul>
</form>
フルスクリプト:
$(document).ready(function() {
var validator = $("form").validate({
onkeyup: false,
onblur: true,
});
if ($(".unique_email").is("*")) {
//remote validation
$(".unique_email").rules("add", {
remote: "http://test.nethop.com/test.cgi",
messages: {
remote: "This email is already in use"
}
});
}
});
まだ1良い質問に対してもがダウン/死亡またはリンク腐朽行くフィドルの場合、完全性についてフィドルからの完全なコードを追加しました。そうすれば、この問題は、今後も同様の問題を抱えるユーザーにとって有益です。特に、HTMLの名前/ IDが問題/ソリューションの一部であることがわかりました。 – Nope
@FrançoisWahl:合意しました、私は私の投票を取り消すことができればと思っています。これは問題をよりよく説明するはるかに簡潔な質問です。 –
@AndrewWhitaker:質問の質に関係なく、私は重複して投票しました。したがって、それはかなり共通の問題に対処する良い質問です。私はこの質問が良質であることが好きですが、それでもまだ悲しいことに重複しています。重複した質問は削除されません。私が知っている限りでは、Googleの – Nope