私は次のJavaScriptを持っています:
<script type="text/javascript">
function CheckInputValue(ThisField){
var InputValue = ThisField.value;
if(InputValue == ""){
alert('You must enter a value in this field');
setTimeout(function() {ThisField.focus();},0);
}
}
</script>
および次の HTML:
<label class="label1" for="inputb">inputb</label><input class="input1" id="inputb" onblur="CheckInputValue(this)">
<label class="label1" for="inputc">inputc</label><input class="input1" id="inputc" onblur="CheckInputValue(this)">
<label class="label1" for="inputd">inputd</label><input class="input1" id="inputd" onblur="CheckInputValue(this)">
意図した結果は、フィールドがフォーカスを失ったときに値がチェックされ、フィールドが空白のままだった場合にユーザーにプロンプトが表示され、フォーカスがその空白フィールドに設定されることです。
ただし、ユーザーが値を入力せずに 1 つの入力フィールドから別の入力フィールドにタブ移動すると、CheckInputValue スクリプトが期待どおりに実行され、アラート メッセージが表示されます。ループが発生します。これを機能させるにはどうすればよいですか、それとも間違った方法で行っていますか?