未捕获类型错误:无法设置未定义的“值”属性

Uncaught type error: Cannot set property of 'value' of undefined

本文关键字:未定义 属性 设置 类型 错误      更新时间:2023-09-26

>我不断收到一个错误,说未捕获的类型错误:无法设置未定义的"值"的属性。 我知道它指的是波纹管代码中的骰子数,我理解错误的含义,但在这种情况下感到困惑。 我的随机数是否产生了问题?谢谢!

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;

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

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

代码的最后一行,

您尝试设置未定义的值i,e:

document.JForm.dienum.value = dienumber;

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

如果您有if检查以摆脱此类错误会更好,

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