未捕获的TypeError:无法读取null的属性“value”

时间:2015-02-27 20:12:04

标签: javascript php jquery

这是我的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”

2 个答案:

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

甚至更好,不要使用内联事件。