当前位置: 首页 > 知识库问答 >
问题:

在不使用innerHTML的情况下获取的值

龚安民
2023-03-14

首先,如果这是一个很长的代码段,我很抱歉,但是,我想做一个模态窗口,它将你在我的用户表单中写的东西写下来,并要求你确认它。我目前正在学习Javascript,我不允许使用innerHTML,我必须动态地编写“名字”等(名字的文本),不允许只在弹出窗口内写它。我已经让大多数东西工作,但“名字”“名字”等显示为“未定义”,或者(正如你可以看到的,我在这种情况下只用名字尝试的事情)显示为“空”。

希望有人能为我解释一下这个问题,这是HTML:

<form action="http://voyager.lnu.se/tekinet/kurser/dtt/wp_webbteknik/process_form.php" method="POST" id="userform" target="_blank"> 

            <p id="formQuestion1">Förnamn</p>
            <div id="error1"></div>
            <input type="text" name="firstName" id="test"/>

            <p id="formQuestion2">Efternamn</p>
            <div id="error2"></div>
            <input type="text" name="lastName" />

            <p id="formQuestion3">Postnummer</p>
            <div id="error3"></div>
            <input type="text" name="postCode" id="codeText"/>

            <p id="formQuestion4">E-post</p>
            <div id="error4"></div>
            <input type="text" name="eMail" />

            <br />
            <br />

            <label id="model" class="formQuestion" for="priceModel">Prismodell</label>
            <br />
                        <select name="Type" id="priceModel">
                            <option value="Låg" selected>Låg</option>
                            <option value="Medel">Medel</option>
                            <option value="Hög">Hög</option>
                        </select>


                <br />
                <br />
                <br />
                <input id="sendButton" type="submit" value="Genomför Köp" />
          </form>

这是模态窗口的片段(Javascript)

 function popup(backgroundDiv) {
var popForm = document.getElementById("userform");
var myDiv = document.createElement("div");
myDiv.className = "popupWindow";
var priceModel = document.getElementById("priceModel");

// Knappar

var newButton = document.createElement("button");
var newerButton = document.createElement("button");

newButton.setAttribute("value", "Skicka");

newButton.innerHTML = "Skicka";  // Here I actually use innerHTML because I don't know
newerButton.innerHTML = "Stäng"; // any other way to set the text inside the button

newButton.className = "popupButton";
newerButton.className = "popupButton";

newButton.setAttribute("id", "Skicka");
newerButton.setAttribute("id", "Avbryt");

myDiv.appendChild(newButton);
myDiv.appendChild(newerButton);

// Information

var h1 = document.createElement("h1");
h1.setAttribute("id", "popuph1");
var h1Text = document.createTextNode("Vänligen kontrollera dina uppgifter");

var text = document.getElementById("formQuestion1");

var writeFname = text.nodeValue + popForm.elements.firstName.value;
var writeLname = document.getElementById("formQuestion2").value + popForm.elements.lastName.value;
var writeCode = document.getElementById("formQuestion3").value + popForm.elements.postCode.value;
var writeMail = document.getElementById("formQuestion4").value + popForm.elements.eMail.value;
var writePlan = document.getElementById("model").value + priceModel.value; 

var p1 = document.createTextNode(writeFname);
var p2 = document.createTextNode(writeLname);
var p3 = document.createTextNode(writeCode);
var p4 = document.createTextNode(writeMail);
var p5 = document.createTextNode(writePlan);

h1.appendChild(h1Text);

myDiv.appendChild(h1);
myDiv.appendChild(p1);
myDiv.appendChild(document.createElement('br'));
myDiv.appendChild(p2);
myDiv.appendChild(document.createElement('br'));
myDiv.appendChild(p3);
myDiv.appendChild(document.createElement('br'));
myDiv.appendChild(p4);
myDiv.appendChild(document.createElement('br'));
myDiv.appendChild(p5);


document.body.appendChild(myDiv);

newButton.onclick = function () {
    document.body.removeChild(myDiv);
    document.body.removeChild(backgroundDiv);
    return true; 
};

共有1个答案

冯野
2023-03-14

如果您不想使用innerHTML,那么您可以使用这些选项,假设您希望从该节点获得值

那么你的代码就是

var dom = document.getElementById('formQuestion1');

1) var res = dom.innerText;

2) var res = dom.textContent;

3) var res = dom.firstChild.nodeValue;

 类似资料:
  • 我在我的应用程序中使用CloudKit作为远程保存数据的一种方式。我的一个记录具有保存图像的CKAsset属性。当我获取记录时,我意识到完成查询要花很多时间。经过多次测试,我得出结论,当您查询记录时,CloutKit会用record对象下载整个资产文件。因此,当您从record对象获取资产并请求它的fileURL时,它会给您一个本地文件路径URL,而不是HTTP类型的URL。这对我来说是一个问题,

  • 问题内容: 我正在使用Angular框架编写单页应用程序。我是新来的。我已经阅读了本指南,以帮助我了解jQuery和Angular之间的根本区别,并且我想尽可能地遵循本指南,而不使用jQuery。 除了jQuery可以解决一些浏览器不兼容问题之外,并提供有用的函数库,例如能够从窗口顶部知道元素的顶部位置,如。没有普通的JavaScript似乎能够接近而不需要重写这个功能,在这一点岂不_是_ 一个更

  • 我有一个正在使用Azure AD身份验证的应用程序。我还需要访问Microsoft Graph API以获取用户数据。我发现的每个向Graph API发出请求的示例都使用了缓存的会话令牌,但由于我使用的是JWT,因此显然不需要存储会话状态。如何使用JWT将我的应用程序作为受众来获得具有适当受众的JWT? 例如,这里有一个从Microsoft Graph AspNetCore示例检索令牌的请求: 它

  • 问题内容: 在SQL(SQL Server)中,是否可以从表的标识列中检索下一个ID(整数),而实际上无需插入行?如果删除了最近的行,则不一定是最高ID加1。 我之所以这样问,是因为我们有时不得不用新行更新活动数据库。该行的ID在我们的代码中使用(例如,Switch(ID){Case ID:},并且必须相同。如果我们的开发数据库和实时数据库不同步,最好预先预测一个行ID部署之前。 我当然可以 SE

  • 问题内容: 我试图通过使用“ document.getElementByName(’nameOfradio’)”来选择单选按钮,因为所有单选按钮都共享相同的名称。但是,什么也没发生。我尝试使用document.getElementById(’nameOfradio’)进行相同的操作,并且运行良好。但是,我必须为所有单选按钮提供唯一的ID。因此,当我有20个单选按钮时,它变得很难看。结果,我想要的是

  • 尝试使用Request.GetParameter但结果检索到第一个值,即第一个索引: 将名称取为“MyArray[]”,并在下一页使用 访问该值` 现在我应该做什么,有没有替代方法或者要在这里做一些更改: 这是page One.jsp中的表单: 下面是代码片段: 注意:忽略计数器值,因为这里只是为了检查,代码运行正常,但它只使用Request.GetParameter检索第一个索引值。 请给我一些