根据文本字段中的值更改,有条件地更改按钮上的图像?

时间:2014-09-12 16:47:07

标签: javascript jquery html image button

在HTML文件中

<table>
    <tr>
         <td>
             <button id="btnStatus" title="Status">
                 <img src='images/statDisable.jpg' id=”btnImg”/>
             </button>
         </td>
         <td>
             <label>Price</label>
             <input type="text" id="tbPrice" style="width: 60px"/>
         </td>
    </tr>
</table>

IN JS FILE:    / *尝试确保按钮图像设置为默认为禁用和       尝试在价格字段中的值更改时更改按钮图像。 * /

this.init = function(){
   document.getElementById("btnImg ").src='images/statDisable.jpg';
};

$("#tbPrice").blur(function() {
   var price = $("#tbPrice").val();
   if(isNumber(price) || price > 0){
      document.getElementById("btnImg ").src='images/statEnable.jpg';

     /* also tried but did not work
        var img = $('# btnImg), a=img.parent('a');
        var srcVar = 'images/statEnable.jpg';
        img.attr({src:srcVar});
        a.attr("href", srcVar);
     */
  }
});

问题: 当用户在tbPrice中输入大于零的数值时,我想将btnStatus上的img更改为'images / statEnable.jpg'。我得到了价格的变更事件,但无法获得要更改的按钮上的图像。我试过的例子只产生一个带有“X”的按钮

1 个答案:

答案 0 :(得分:0)

我将函数包装在doc ready中,将isNumber更改为jQuery isNumeric,并更改了||到&amp;&amp;我认为您正在寻找以下内容:

this.init = function(){
   document.getElementById("btnImg ").src='images/statDisable.jpg';
};

$(document).ready(function(){
  $("#tbPrice").blur(function() {
    var price = $("#tbPrice").val();
    if($.isNumeric(price) && price > 0){
        document.getElementById("btnImg").src='images/statEnable.jpg';
    }
    else{
        document.getElementById("btnImg").src='images/statDisabled.jpg';
    }
  });
});

如果值为数字且为正,则更改图像。如果价值不好,它还可以将其更改为禁用。