html:<span class="page">第<input type="text" value="1"/>页/<span>10</span></span>
js
//页码输入框
$('.page input').focus(function(){
var p1=$(this).val();
$(this).focusout(function() {
var p2=$(this).val();
var p3=parseInt($('.page span').text());
if(p2>0&&p2<=p3){
if(p1!=p2){
     alert('文本框内容改变了!');
}
else{
alert('没变,什么也不需要做!');
}
}
else
{
alert('您输入的页数不存在!'); }
});

});
});
第一次点击正常,之后的每一次,都不正常,请帮忙看看,想实现的就是,当文本框失去焦点时谈一次就成啊

解决方案 »

  1.   

    <span class="page">第<input type="text" id="inputPage" value="1"/>页/<span>10</span></span>
    <script type="text/javascript">
    var el = document.getElementById("inputPage");
    el.onblur  = function () {
    var p = this.value;
    if (!!p) {
    if (p != this.defaultValue) {//改变了
    alert('改变了,准备跳转!')
    } else {
    //alert('未改变')
    }
    }
    };
    </script>
      

  2.   

    <span class="page">第<input type="text" id="inputPage" value="1" onkeyup="this.value=this.value.replace(/[^\d]/g,'')"/>页/<span>10</span></span>
    <script type="text/javascript">
        var v=1,el = document.getElementById("inputPage");
        el.onblur = function () {
            var p = this.value;
            if (p!=v) {
                    alert('改变了,准备跳转!')
                } else {
                    alert('未改变')
            }
            v=p;
        };
    </script>
      

  3.   

    楼上这位写的就可以用的,如果你非得纠缠于使用jQuery的话:
        var p=1;
        $('.page input').bind({
            "blur": function () {
                    if($(this).val()!=p)
                    {
                        p=$(this).val();
                        alert('改变了');
                    }
                }
        });
      

  4.   

    focusout发生了遍历,它会把文本框第一次获取焦点时的值和现在值比较,然后把第二次获取焦点时的值也和现在的值比较……