未捕获的类型错误:无法设置undefined的'value'属性

时间:2013-09-30 18:17:00

标签: javascript

我一直收到一条错误,指出未捕获类型错误:无法设置undefined的'value'属性。我知道它是指波纹管代码中的dienumber,我理解错误意味着什么,但在这种情况下我感到困惑。我的随机数是否会产生问题?谢谢!

function roll() {
    var dienumber = 12;
    dienumber = Math.floor((Math.random() * 6) + 1);

    wintotal = document.JForm.totalpoints.value;

    var p1curr = 0;
    var p2curr = 0;

    p1current = document.JForm.p1turn.value;
    p2current = document.JForm.p2turn.value;

    if (dienumber != 1) {
        p1curr = parseFloat(p1current) + (dienumber);
        p2curr = parseFloat(p2current) + (dienumber);
    } else {
        p1curr = 0;
        p2curr = 0;
    }

    if (P1 == 1) {
        document.JForm.p1turn.value = p1curr;
        document.JForm.p2turn.value = "0";
    } else {
        document.JForm.p1turn.value = "0";
        document.JForm.p2turn.value = p2curr;
    }

    if (dienumber == 1) {
        turn_counter = turn_counter + 1;
        if (P1 == 1) {
            P1 = 2;
            P2 = 1;
        } else {
            P1 = 1;
            P2 = 2;
        }
    }

    document.JForm.dienum.value = dienumber;

2 个答案:

答案 0 :(得分:1)

没有HTML代码,很难找到错误。

但该消息通常意味着您正在访问的项目(标记)不存在。

答案 1 :(得分:1)

在代码的最后一行,

您尝试设置undefined的值 I,E:

document.JForm.dienum.value = dienumber;

在设置值之前,请确保您的JForm中有dienum。

如果你有一个if检查来摆脱这样的错误会更好,

if(document.JForm.dienum){
 document.JForm.dienum.value = dienumber;
}