7

我有一个需要是数字的输入,并且需要在值更改时更新标签。

<input id="shares" name="shares" type="text" maxlength="3" onchange="game_board.update_shares(this);this.oldvalue = this.value;" onkeypress="return game_board.isNumberKey(event)">

需要 onkeypress 函数来确保用户只能输入数字,并且 onchange 会用新信息更新我的标签。

onkeypress 功能很好用,我只能输入数字。然而,onchange 函数什么也没做。

验证功能:

this.isNumberKey = function(evt){
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31 
  && (charCode < 48 || charCode > 57)){
   return false;
  }

return true;};

更新功能:

this.update_shares = function(o){
alert("test");
$(".dollar_amount").html("$" + "value" + ".00");};
4

2 回答 2

3

由于您使用的是 jQuery,因此您也可以使用 jQuery 事件处理程序:

HTML

<input id="shares" name="shares" type="text" maxlength="3" />
<div class="dollar_amount"></div>

JS

$("#shares").on("keydown", function (evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
});

$("#shares").on("change", function () {
    var o = $(this).val();
    $(".dollar_amount").html("$" + o + ".00");
});

工作示例:http: //jsfiddle.net/charlescarver/e43pE/1/

这符合您的需求吗?还是需要保留this.update_shares = function(o)

于 2013-05-05T19:07:04.847 回答
2

因此,您想要的是随着值的变化更新标签。如果我是你,我会在按键事件中这样做。我的意思是,类似:

this.isNumberKey = function(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)){
        return false;
    }
    $(".dollar_amount").html("$" + "value" + ".00");};
    return true;
};
于 2013-05-05T19:07:13.543 回答