我有一个html页面,其中包含输入字段供用户输入水果数量。在按键/键上,假设调用javascript文件方法并检查它是否为数字。如果它不是数字,则将清除文本框字段。但是,当我尝试输入非数值时,我的文本框不会被清除。我的代码中是否缺少某些内容?
HTML
<div class="form-group ">
<label class="control-label " for="name"> Name </label>
<input class="form-control" id="name" name="name" type="text" /> <span class="help-block" id="hint_name"> Enter your name </span>
</div>
<div class="form-group ">
<label class="control-label" for="apple"> Apple ( 69cents ) </label>
<input class="form-control form-control-input" id="apple" name="apple" type="text" autocomplete="off" onkeyup="isNumber(this,event)" /> <span class="help-block" id="hint_number"> Enter Qty </span>
</div>
<div class="form-group ">
<label class="control-label" for="orange"> Orange ( 59cents ) </label>
<input class="form-control form-control-input" id="orange" name="orange" type="text" autocomplete="off" onkeyup="isNumber(this,event)" /> <span class="help-block" id="hint_number1"> Enter Qty </span>
</div>
<div class="form-group ">
<label class="control-label" for="banana"> Banana ( 39cents ) </label>
<input class="form-control form-control-input" id="banana" name="banana" type="text" autocomplete="off" onkeyup="isNumber(this,event)" /> <span class="help-block" id="hint_number2"> Enter Qty </span>
</div>
的Javascript
function isNumber(idValue, evt) {
evt = (evt) ? evt : window.event;
var sum = 0;
var costOfApple = 0;
var costOfOrange = 0;
var costOfBanana = 0;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
document.getElementById('idValue.id').value = "";
document.getElementById('totalCost').value = "NaN";
$("#invalid-alert").fadeTo(2000, 500).slideUp(500, function() {
$("#invalid-alert").slideUp(500);
});
} else {
costOfApple = document.getElementById('apple').value * 69;
costOfOrange = document.getElementById('orange').value * 59;
costOfBanana = document.getElementById('banana').value * 39;
sum = (Number(costOfApple) + Number(costOfOrange) + Number(costOfBanana)) / 100;
document.getElementById('totalCost').value = "$" + (sum).toFixed(2);
}
}
答案 0 :(得分:2)
问题陈述是
document.getElementById('idValue.id').value = "";
您正在传递字符串&#39; idValue.id&#39;对于函数和具有ID的元素不存在,因此代码不起作用,您必须在浏览器控制台中收到错误。
由于idValue
是指调用事件处理程序的元素。您可以直接使用它来设置其属性。
idValue.value = ""
答案 1 :(得分:1)
我认为
document.getElementById('idValue.id').value = "";
应该是
document.getElementById(idValue.id).value = "";
或
idValue.value = "";
并且,isNumber函数中的console.dir( idValue )
很好!
请测试!
答案 2 :(得分:1)
你将它传递给一个函数,这里输入你应该把它作为一个对象而不是一个字符串。
不要这样做:
document.getElementById('idValue.id').value = "";
试试这个
document.getElementById(idValue.id).value = "";
答案 3 :(得分:0)
$(document).on('change', 'input', function() {
if($('#Id').val() == "" ) {
// Do something
}
});
OR
document.getElementById(yourID).value = "";