-1

だから私はこれを持っていました、そしてそれは働いていて、そしてすべてが良かったです。次に、これに変更を加えようとしましたが、すべてうまくいきませんでした。関数を間違った方法で定義していますか?申し訳ありませんが、私はJSとjQを初めて使用します(ただし、これはjQuery関連のものではなく、単なる基本的なJavaScriptであると想定しています)

編集:また、MAILTO:hrefは機能しませんか?試してみましたが、メールが届きませんでした…とにかく、ありがとう!

4

3 に答える 3

4

これらを変更する必要があります。

$("#name").focusout(checkName());

$("#name").focusout(checkName);

関数自体をハンドラーとして割り当てたいのfocusoutですが、代わりに、関数がハンドラーとして返すものをすべて割り当てています。

また、mailto:URLスキームは電子メールを送信しません。訪問者のマシンでこのスキームのハンドラーとして定義されているローカルメールクライアントを開き、URLのアドレスにアドレス指定された新しいメッセージの作成を開始します。

于 2012-09-20T10:13:41.947 に答える
2

実行された関数の結果ではなく、関数名を渡します。

$("#name").focusout(checkName);
$("#pass").focusout(checkPass);
$("#pass2").focusout(checkPass2);
于 2012-09-20T10:13:57.080 に答える
2

関数名の前に追加varします(完全に必要というわけではありませんが、グローバルになるのを防ぎます)。

var checkName = function(){

そして、実際の関数自体を渡すのではなく、関数を実行して結果を渡すため、()なしでイベントバインディング関数にそれらを渡します。

$("#name").focusout(checkName);

これで問題が解決するはずです。

http://jsfiddle.net/infernalbadger/Hxnv5/6/

また、mailto:リンクは正常に機能します。デフォルトの電子メールクライアントが開きます。

于 2012-09-20T10:15:36.747 に答える