javascript - 一起使用 onchange() 和 onkeypress() 的问题

标签 javascript jquery html

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

<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");};

最佳答案

既然您使用的是 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)

关于javascript - 一起使用 onchange() 和 onkeypress() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387984/

相关文章:

javascript - 在 "protractor' 中找不到模块

php - Laravel - 分页并附加搜索结果

javascript - 使用 Jquery 创建和获取动态 url

css - Chrome 中的 HTML5 仪表样式

javascript - 为什么我的引导模式不会弹出?

javascript - 如何修复 Ajax 调用 "The parameters dictionary contains a null entry........."

javascript - 基本 Javascript/jQuery 数学游戏 : Why can't I evaluate the second time I run this function?

javascript - 如何从 HTML 文件中获取脚本并将其移动到它自己的 .JS 文件中?

php - 显示 Bootstrap 动态模态

用于状态消息的 JQuery UI 模式对话框直到最后才会更新