这是我的PHP代码:
echo '<td>';
$r= $item['Rate'];
echo '<input id="ratetb" onkeyup="clean(ratetb)" onkeydown="clean(ratetb)" name="ratetb" autocomplete="off" style="text-align:center" type="text" value="'.$r.'" >';
echo '</td>';
这是我的JavaScript函数:
function clean(e) {
var textfield=document.getElementById(e);
var replc=/[^0-9 .]/gi;
textfield.value=textfield.value.replace(replc,"");
}
执行此操作时出现错误
未捕获的TypeError:无法读取null
的属性“value”
答案 0 :(得分:2)
请检查调用函数,并确保有一个id为e的项,因为错误表明textfield为null,因此无法为null对象的值。
修改:更改问题后,必须为onkeyup="clean('ratetb')"
答案 1 :(得分:1)
你没有传递一个字符串
echo '<input id="ratetb" onkeyup="clean(ratetb)" onkeydown="clean(ratetb)"
应该是
echo '<input id="ratetb" onkeyup="clean(\'ratetb\')" onkeydown="clean(\'ratetb\')"
更好的是,传入对象引用
echo '<input id="ratetb" onkeyup="clean(this)" onkeydown="clean(this)"
并更改功能
function clean(textfield) {
var replc=/[^0-9 .]/gi;
textfield.value=textfield.value.replace(replc,"");
}
甚至更好,不要使用内联事件。