我的输入需要是数字,需要在更改值时更新标签。
<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");};
答案 0 :(得分: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)
?
答案 1 :(得分: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;
};