javascript 正在尝试单击按钮,第一个设法调用了函数,但第二个没有被调用

xmakbtuz  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(106)

我动态地创建了两个按钮。第一个按钮成功调用“popUpLOTdt”函数,但第二个按钮无法调用“popUpLOTQuestiondt”函数。(我还做了2个删除按钮,两个按钮都很好用)
这是第一个按钮:

let action = "<button type='button' class='btn btn-danger' onclick='popUpLOTdt(" + detailId + "," + formula + "," + desc + ", " + size + "," + uom + "," + aw + "," + c1 + "," + c2 + "," + c3 + "," + c4 + ", " + c5 + ", " + c6 + "," + ca + ")'>Edit</button> <button type='button' class='btn btn - danger' onclick='deletedetailsample(" + detailId + ")'>Delete</button> ";

这是popUpLOTdt函数:

function popUpLOTdt(id, formula, desc, serve, uom, water, code1, code2, code3, code4, code5, code6, ans) {

    
    document.getElementById('intSamplePanelRequest_DetailID').value = id;
    document.getElementById('txtFormula').value = formula;
    /*document.getElementById('intSampleNum').value = num;*/
    document.getElementById('txtSample_desc').value = desc;
    document.getElementById('txtUOM').value = uom;
    document.getElementById('intServingSize').value = serve;
    document.getElementById('intAddedWater').value = water;
    document.getElementById('txtCorrectAns').value = ans;
    document.getElementById('txtSampleCode1').value = code1;
    document.getElementById('txtSampleCode2').value = code2;
    document.getElementById('txtSampleCode3').value = code3;
    document.getElementById('txtSampleCode4').value = code4;
    document.getElementById('txtSampleCode5').value = code5;
    document.getElementById('txtSampleCode6').value = code6;



    $('#popUpLOT').modal({ show: true, backdrop: false });

}

这是第二个不能调用函数的按钮

let action = "<button type='button' class='btn btn-danger' onclick='popUpLOTQuestiondt(" + detailId + "," + seq + "," + question + "," + instruct + "," + stat + "," + c1 + "," + c2 + "," + c3 + "," + c4 + ", " + c5 + ", " + c6 + ")'>Edit</button> <button type='button' class='btn btn - danger' onclick='deletedetailquestion(" + detailId + ")'>Delete</button> ";

这是popUpLOTQuestiont函数

function popUpLOTQuestiondt(id, seq , question, instruction, stat,  code1, code2, code3, code4, code5, code6,  ) {

    debugger;
    document.getElementById('intQuestionID_DetailID').value = id;
    document.getElementById('txtQuestion').value = question;
    document.getElementById('intSequence').value = seq;
    document.getElementById('txtInstruction').value = instruction;
   /* document.getElementById('bitVoid').value = vd;*/
    document.getElementById('txtSampleCode1').value = code1;
    document.getElementById('txtSampleCode2').value = code2;
    document.getElementById('txtSampleCode3').value = code3;
    document.getElementById('txtSampleCode4').value = code4;
    document.getElementById('txtSampleCode5').value = code5;
    document.getElementById('txtSampleCode6').value = code6;
    document.getElementById('txtStatistic').value = stat;

    $('#popUpLOT2').modal({ show: true, backdrop: false });

}

我的代码有问题吗?什么应该

qoefvg9y

qoefvg9y1#

我的理解是:你刚刚引用了一串字符串到变量“action”。
我想你的目的是创造这样的元素?

someContainerElement.innerHTML = action;


如果是这样的话,我建议不要用这种方式创建DOM元素,因为有时候你会得到奇怪的行为。为了安全起见,使用

//creates the button
let button1 = document.createElement("button");
button1.setAttribute("class", "class1 class2 class3");
button1.setAttribute("onclick", "yourFunction");

//appends it to the DOM
let body = document.querySelector("body");
body.append(button1);

其次,在引用“action”的字符串中,实现了两个按钮。第二行字符串也被引用为“action”。你不能重复声明一个变量两次,最后你应该有一个Error。
尝试创建按钮元素,就像我告诉你,让我知道会发生什么

相关问题