向使用javascript创建的文本区域添加标签

向使用javascript创建的文本区域添加标签,javascript,jquery,html,Javascript,Jquery,Html,如果已回答此问题,请告诉我答案 我正在创建一个移动应用程序,这是一个基于我工作中使用的表单设计的表单。此表格的一部分需要输入数字,这些数字必须在特定的数字范围内。如果输入的数字超出该数字范围,用户需要在表单末尾输入“纠正措施” 我有一个javascript函数来“验证”这些输入字段。我还可以使用相同的函数在正确的位置生成一个,但是当我尝试使用该函数来提取输入字段标签的内容并将其添加到生成的文本区域时,该函数不起作用 以下是HTML表单和与输入字段关联的javascript的一小部分: <d

如果已回答此问题,请告诉我答案

我正在创建一个移动应用程序,这是一个基于我工作中使用的表单设计的表单。此表格的一部分需要输入数字,这些数字必须在特定的数字范围内。如果输入的数字超出该数字范围,用户需要在表单末尾输入“纠正措施”

我有一个javascript函数来“验证”这些输入字段。我还可以使用相同的函数在正确的位置生成一个
,但是当我尝试使用该函数来提取输入字段标签的内容并将其添加到生成的文本区域时,该函数不起作用

以下是HTML表单和与输入字段关联的javascript的一小部分:

<div id="coldtemp" data-role="ui-content">

            <label for="bottomair">Maketable Air Temp (bottom)</label>
            <input data-clear-btn="true" name="bottomair" required id="bottomair" type="number" size="3" onChange="coldValidate(this)">
            <p class="tollorance"></p>
</div>

<div id="correction">

</div>

可制造空气温度(底部)

javascript:

function coldValidate(elem) {
    var lable = document.createElement("label");
    var child = elem.parentNode.getElementByTagName("label").textContent;
    //lable.appendChild(child);
    var para = document.createElement("textarea");
    var element = document.getElementById("correction");
    var x, text;
    x = +elem.value;
    if (isNaN(x) || x < 33 || x > 40) {
        text = "Temp Out of Tolerance</p>";
    } else {
        text = " ";
    }
    elem.parentNode.nextElementSibling.innerHTML = text;
    //element.appendChild(lable);
    element.appendChild(para);
}
函数coldValidate(elem){
var lable=document.createElement(“标签”);
var child=elem.parentNode.getElementByTagName(“标签”).textContent;
//标签。附属物儿童(儿童);
var para=document.createElement(“textarea”);
var元素=document.getElementById(“更正”);
变量x,文本;
x=+元素值;
如果(isNaN(x)| | x<33 | | x>40){
text=“温度超出公差范围”

”; }否则{ text=“”; } elem.parentNode.nextElementSibling.innerHTML=text; //元素。子元素(标签); 要素.附件(第6段); }

我尝试了
.getElementBy
javascript方法的各种变体,但都不管用,我真的被难倒了。我还注释掉了部分“label”代码,试图找出哪里出了问题,这就是为什么
lable.appendChild(child)
元素.appendChild(标签)都被注释掉。

问题在于您使用的是无效语法的
getElementByTagName(“标签”)
。您要查找的是
getElementsByTagName(“标签”)[0]

函数coldValidate(elem){
var lable=document.createElement(“标签”);
var child=elem.parentNode.getElementsByTagName(“标签”)[0].textContent;
//标签。附属物儿童(儿童);
var para=document.createElement(“textarea”);
var元素=document.getElementById(“更正”);
变量x,文本;
x=+元素值;
如果(isNaN(x)| | x<33 | | x>40){
text=“温度超出公差范围”

”; }否则{ text=“”; } elem.parentNode.nextElementSibling.innerHTML=text; //元素。子元素(标签); 要素.附件(第6段); }

可制造空气温度(底部)


您使用的是像angular或react这样的JavaScript框架吗。你也可以使用node、express和pug、模板引擎以一种更简单的方式提出建议。不,我目前只在表单中使用本机javascript和一些jQuery,因为我不熟悉任何其他内容。我在整个页面中尝试了对代码的这种更正,但它似乎不起作用。当我注释掉所有处理检索
标记内容的行时,代码的工作方式与预期的一样,并在适当的地方生成“Temp out of Tolerance”消息。但是,只要我取消对这些部分的注释,代码就无法生成“Temp Out of Tolerance”消息。因为
child
不是节点。它是来自标签的文本。您正在尝试将标签文本附加到标签本身。为了纠正这一点,您需要从
子对象中删除最后的
textContent
var child=elem.parentNode.getElementsByTagName(“标签”)[0]。但是您不需要这样做--您想用这两行代码实现什么?需要它们吗?“温度超出公差”已出现。是否要将文本“Maketable Air Temp(底部)”更改为所选的数字?如果数字输入超出预设范围,将生成的文本区域将放置在移动应用程序中的不同“页面”上。我正试图在生成的文本区域旁边放置一个相应的
标记,因为表单中有50个不同的区域,可能需要在表单中注明“纠正措施”。我刚刚更新了答案,以显示移动到文本框旁边的标签,并且还关联了“for”属性:)这些更正似乎没有帮助。当我从子变量中去掉
.textContent
时,它开始工作(虽然生成三个文本区域而不是一个),但现在代码不再生成任何内容。现在我更困惑于我的函数到底出了什么问题