4

onblurそれぞれの入力フィールドで呼び出される検証関数があります。同時に、1 つの sayvalidateall()関数で同じ検証関数を呼び出しvalidateall()ており、呼び出されていonsubmitます。問題は、何らかのエラーが発生した場合に修正し、その時点でフォームを送信すると、イベントonblurの呼び出しが妨げられているということです。onsubmitこの問題は、Firefox でのみ直面しています。

JavaScript:

function validateFormOnSubmit(theForm) 
{
vUsername(theForm.userName,document.getElementById('UError'));//this will return true or false depends on error occurrence. 
}

html:

<form name="form" onsubmit="return validateFormOnSubmit(this);">
<input type="text" id="userName" onblur="vUsername(this,UError);">

//UError は、エラー メッセージを出力する div id です。

4

2 に答える 2

1

onBlur には delay() 関数または setTimeOut() 関数を使用します。

このリンクも役立ちます.. jQuery検証 onblur

于 2013-02-07T11:35:30.673 に答える
0

onBlur イベントに setTimeout 関数を追加します。パラメータを引き渡すには、匿名関数を使用する必要があります。

<input type="text" id="userName" onblur="setTimeout(function(){ vUsername(this,UError) }, 200);">

これで、送信イベントは onBlur よりも高速になるはずです :-)

于 2013-02-07T11:31:03.520 に答える