2011-06-30 7 views
0

私はこのようなコードを持っています。JavascriptでのOnBlurの割り当て

<script type="text/javascript"> 

var ID= document.getElementById('customfield_10033'); 
var IDNumber= document.getElementById('customfield_10033').value; 

    ID.onblur=function(IDNumber) 
{ 

    if ((IDNumber!="") && (IDNumber.length!=11)){ 
    alert("Your ID number should 11 digits."); 
} 

しかし、11桁のID番号を入力すると、警告機能が表示されます。しかし、それはすべきではない。私は私が機能するためにONBLURプロパティを割り当てる間違っているのだと思い

.. ID.onblur=function(IDNumber)

私はこのコードをどのように修正することができますか?

答えて

3

あなたは、イベントハンドラ(おそらくあなたがフィールドのデフォルト値がなるように設定何でも保持されます)を割り当てるときは、IDNumberを定義していますが、ほぼ確実にblurイベントはを発生したときに、それを定義したいです。あなたのイベントハンドラ関数内

移動

var IDNumber= document.getElementById('customfield_10033').value; 

(すでに要素への参照を持っているので、あまりにもvar IDNumber = ID.value;を行うには、より効率的である)

1

あなたは代わりにこのようなものが必要です:変数にvalueを割り当てることで

ID.onblur = function(IDNumber) 
{ 
    var IDNumber = ID.value; 
    if (IDNumber !== "" && IDNumber.length !== 11) 
    { 
     alert("Your ID number should 11 digits."); 
    } 
} 

を、値へのポインタではなく静的なデータを配置するので、毎回「ライブ」値を読み取る必要があります。

+0

。 –

+1

乾杯、彼は私より20秒も速かった、笑: –

-1

if文を閉じるのを忘れました。これを試してみてください:右クエンティンの答えのようにまた

if ((IDNumber!="") && (IDNumber.length!=11)) { 
    alert("Your ID number should 11 digits."); 
} 

よろしく、 トーマス

+0

私はあなたのコードを取ってjsfiddleでそれを走らせ、括弧がないことが分かった。時にはエラーも同じくらい簡単なので、私はあなたに知らせたいと思っていました。私はこっそりした発言やそのようなものとしてこれを投稿しませんでした。 – tkahn

関連する問題