我有以下 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)">
预期的结果是,当某个字段失去焦点时,会检查该值,如果该字段留空,将提示用户,并将焦点设置到该空白字段。
但是,当用户在未输入值的情况下从一个输入字段切换到另一个输入字段时,CheckInputValue 脚本会按预期运行,但会显示警报消息,但因为焦点正在由用户启动的选项卡更改,然后由脚本更改回来,所以循环发生。我该如何进行这项工作,或者我是否以错误的方式进行?