2017-03-17 4 views
0

の難しさを持っていますthisqueryイベントを説明してください。私の頭のセクションでは機能しません、以下を指摘したよう誰かが私はジャバスクリプト/ jqueryのには本当に新しいですし、次のように理解困難な時間を過ごしてい

私は、多少このような入力フォーム...私は上記のシナリオで

<input id='registeremail' type='email; name='email' onblur=checkemail() > 

<button id='btn1'>Hello</button> 

を持っています。

<script> 

    $(document).ready(function(){ 

    function checkemail() { 
     checkthis = $('#registeremail').val(); 
     $('#btn1').text(checkthis); 
    } 

    }); 

</script> 

私は作品にそれを得ることができる唯一の方法は、

これは私にナットを駆動しているだけで

<script> 

$(document).ready(function(){ 

    $('#registeremail').focusout(function() { 
     checkthis = $('#registeremail').val(); 
     $('#btn1').text(checkthis); 

    }); 

</script> 

上記のような入力フォームを保管してください。このようなものです。 onblurはjqueryと互換性がありませんか?私が紛失している明白なことは何ですか?

おかげonXXX属性で使用されている

+0

これは、ドキュメントの準備ができているため、グローバルスコープには含まれていないためです。 JavaはJavaScriptとは異なります。 – epascarello

+0

'onblur = checkemail()'は 'onblur =" checkemail() "'でなければなりません。ここやあなたのコードにミスタイプはありますか? – CynePhoba12

+1

'type = 'email;'これは 'type =' email''でなければなりません。 –

答えて

1

名前はグローバルスコープで検索されています。 $(document).ready()の中に関数があるので、関数名はグローバルスコープではなく、そのスコープ内でのみ使用できます。

一般的に関数定義を$(document).ready()の中に入れる必要はありません。これは、ドキュメントがロードされるまで実行しないでください。関数定義はすぐには実行されず、定義を保存するだけです。 $(document).read()内の他の関数でのみ使用されている場合は、グローバルスコープの汚染を避けるために関数定義をそこに入れることができます。しかし、グローバルスコープのすべての機能を使いたい場合は、それを取り除く必要があります。

また、属性値を引用符で囲む習慣を覚えてください。値に特定の特殊文字(空白または>など)が含まれている場合にのみ厳密に必要ですが、一般的には良い考えです。

onblur='checkemail()' 
関連する問題