我有一个输入需要是数字,并且需要在值更改时更新标签。
<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/