0

私はこのようなコードを持っています。

<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)

このコードを修正するにはどうすればよいですか?

4

3 に答える 3

3

IDNumberイベントハンドラーを割り当てるタイミングを定義します(したがって、フィールドのデフォルト値を設定したものはすべて保持される可能性があります)が、blurイベントが発生したときに定義する必要があります。

動く

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

イベントハンドラー関数の内部。

(すでに要素への参照があるので、それもより効率的ですvar IDNumber = ID.value;

于 2011-06-30T09:19:26.907 に答える
1

代わりに次のようなものが必要です。

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

into変数を割り当てることによりvalue、値へのポインターではなく静的データを配置するため、毎回「ライブ」値を読み取る必要があります。

于 2011-06-30T09:19:33.003 に答える
-1

ifステートメントを閉じるのを忘れました。これを試して:

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

よろしく、トーマス

于 2011-06-30T09:30:29.197 に答える