簡単な検証を行う必要があります。最初は問題なく動作しますが、テキストに値を入力した後、F5 キーを押してページを更新すると、コードが正しく動作しません。
バグを生成する手順
最初のテキスト ボックスに注目し、値を入力せずにぼかします。関数は「エラー」を警告し、エラーという名前のクラスがテキストボックスに追加されます
テキストボックスに値を入力してF5を押します。次に、テキストボックスから値を削除すると、ぼかし機能が「エラーなし」と警告し、ここで問題が発生します。空のテキスト ボックスがぼやけているため、アラートが表示されるはずです。
私はゲートを投資し、入力テキスト値が空白と等しくない場合にコードに言及し、テキストボックスをぼかすonload関数が原因でこの問題が発生していることを発見しました
<head>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$('input').blur(function(){
if($(this).hasClass('error')){
alert('error')
}
else {
alert('no error')
}
})
})
function test(id){
if($(id).val()==''){
$(id).addClass('error')
}
else {
$(id).removeClass('error')
}
}
$(function(){
setTimeout(function(){
$('input').each(function(){
if($(this).val()!=''){
$(this).blur();
}
})
},1000)
})
</script>
<style>
.error{ border:#F00 solid 1px}
</style>
</head>
<body>
<input type="text" onblur="test(this)"/>
<input type="text" onblur="test(this)" />
</body>