document.getElementById是NULL错误

时间:2013-05-13 21:40:18

标签: php javascript templates smarty

我有一个侦听onkeyup事件的函数,onkeyup检查一个框是否有值,如果不是空白,则应该拉出一个elementID的值,这是一个从另一个页面调用的电话号码。它接受该值并将其插入到一个被发送到另一个elementID的html片段中。下面的代码是函数和相关的代码。

<script language="javascript">
function monthlycheck() {

    var mnthchk = document.getElementById("mdamountBox");
    var cancelPhone = document.getElementById("cancelphoneLabel");
    document.getElementById("cancelphonelistLabel").value = cancelPhone; <--gives the is null error

    if(mnthchk.value!=""){

        var newHTML = "<span style='color:#24D330'> Your Monthly pledge in the amount of $__ is valid and will be deducted this time every month<br> untill you notify us of its cancellation by calling <label id='cancelphonelistLabel'>&nbsp;</label>";
        " </span>";

        document.getElementById("mnthlychkdiscoLabel").innerHTML = newHTML;
    }
}

</script>

<label id="mnthlychkdiscoLabel">&nbsp;</label> <---this is where the final data is to be displayed
<label id="cancelphoneLabel">1-800-555-1111</label> <--- this is the phone number pulled from another page,

所有数据在加载时在一个页面中被拉到一起,但是使用智能模板在单独的页面中写入。我一直得到有权的错误,并尝试了许多不同的东西来解决它,但我很难得到任何帮助,非常感谢。

这是一个jfiddle http://jsfiddle.net/rn5HH/

1 个答案:

答案 0 :(得分:1)

我认为您在创建之前尝试访问该ID。 此外.value仅用于输入。看起来你正在创建一个标签,所以你要使用innerHTML。

这样的事情:

<script language="javascript">
function monthlycheck() {

  var mnthchk = document.getElementById("mdamountBox");
  var cancelPhone = document.getElementById("cancelphoneLabel");

  if(mnthchk.value!=""){

    var newHTML = "<span style='color:#24D330'> Your Monthly pledge in the amount of $__ is valid and will be deducted this time every month<br> untill you notify us of its cancellation by calling <label id='cancelphonelistLabel'>&nbsp;</label></span>";

    document.getElementById("mnthlychkdiscoLabel").innerHTML = newHTML;

    document.getElementById("cancelphonelistLabel").innerHTML = cancelPhone; //<--gives the is null error

  }
}
</script>

<label id="mnthlychkdiscoLabel">&nbsp;</label> <---this is where the final data is to be displayed

<label id="cancelphoneLabel">1-800-555-1111</label> <--- this is the phone number pulled from another page,

我不是100%你想要做的事情,所以我只是试着让它发挥作用。在这方面你可以简化许多事情。如果您可以创建jsfiddle以更清楚地显示它,将会有所帮助。

修改

修正小提琴,使其正常工作并显示电话号码: updated fiddle

这应该是它应该做的吗?