<textarea id="myinput" rows="5" cols="25" name="myinput"></textarea>
<img id="sendButton" width="79" height="32" border="0" src="source/img/send0.gif" >
$(document).ready(function(){
var sendBtnChg = function(){
if($("#myinput")[0].value=="" || $("#myinput")[0].value==null){
$("#sendButton").attr('src','source/img/send0.gif');
}else{
$("#sendButton").attr('src','source/img/send.gif');
}
};  $('#myinput').change(sendBtnChg());
$('#myinput').keyup(sendBtnChg());
});
期望是在输入框中输入文字时,按钮变成send.gif  没有文字输入时是send0.gif
但是不知为啥没反应,似乎change和keyup没起作用。用firebug调试,也没发现什么问题另:jquery正确引入了

解决方案 »

  1.   

    sendBtnChg是一个函数对象,在注册的时候直接写名字就可以了,不需要在后面加上()
    在注册的时候去掉()就可以了
     $('#myinput').change(sendBtnChg);
     $('#myinput').keyup(sendBtnChg);
      

  2.   

    $("#myinput")[0].value 直接写成$("#myinput").val() 就好
      

  3.   

    当然是执行了一次,ddocument.ready就是注册了一个窗体加载的函数,在窗体加载的时候就会执行
    有括号代表执行这个函数了
    $()得到的是一个类Dom的数组,即使只有一个元素,$("#myinput")[0]。即取得一个对应的Dom元素,
    $("#myinput").val() 和$("#myinput")[0].value在一般情况下是一样的
      

  4.   

    $(document).ready(function(){
        var sendBtnChg = function(){
            if($("#myinput").val()=="" || $("#myinput").val()==null){
                $("#sendButton").attr('src','source/img/send0.gif');
            }else{
                $("#sendButton").attr('src','source/img/send.gif');
            }
        };     $('#myinput').change(sendBtnChg);
        $('#myinput').keyup(sendBtnChg);
    });
      

  5.   

    $(document).ready(function(){
        var sendBtnChg = function(){
            if($("#myinput").val()=="" || $("#myinput").val()==null){
            //或者if($("#myinput")[0].value=="" || $("#myinput")[0].value==null){
            //由于JQ对象和DOM对象之间可以互相转换 $("#myinput")[0]是JQ对象转变为Dom对象
                $("#sendButton").attr('src','source/img/send0.gif');
            }else{
                $("#sendButton").attr('src','source/img/send.gif');
            }
        };     $('#myinput').change(sendBtnChg);//此处参数是一个function 而不是function()
        $('#myinput').keyup(sendBtnChg);
    });