【问题标题】:Create text in <p> tag in depend on <select> tag, javascript在 <p> 标记中创建文本取决于 <select> 标记,javascript
【发布时间】:2016-08-13 15:18:20
【问题描述】:

我想在输入标签之后创建带有文本(或类似内容)的 p 标签,在此用户在选择标签中选择国家之前通知用户他/她在此字段中输入的值。
例如:
用户选择美国:输入后必须出现“USD”
用户选择英格兰:输入后必须出现“GBP”

请解释为什么我的代码不起作用,这是正确的方法吗?

JS:

function insertAfter(referenceNode, newNode) 
{
     referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

function createText() 
{
     var selectValue = document.getElementById("money").value;
     var CashInput = document.getElementById("cash");
     var temp = document.createElement("p");
     if (selectValue == "pound") 
     {
         var text = "GBP";
         temp.appendChild(text);
         insertAfter(CashInput, temp);
     }
}

HTML:

<select id="money" onchange="createText();">
    <option value="pound">England</option>
    <option value="doll">USA</option>
</select>

    <input id="cash">

【问题讨论】:

  • 您的代码不起作用,因为.appendChild() 用于附加节点,而不是文本字符串。相反,请temp.appendChild(document.createTextNode("GBP"))

标签: javascript html select input


【解决方案1】:

我建议使用现有元素并更改它的 innerText 属性。这是一个有效的示例。

function insertAfter(referenceNode, newNode) 
{
     referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

function createText() 
{
     var selectValue = document.getElementById("money").value;
     var CashInput = document.getElementById("cash");
     if (selectValue == "pound") 
     {
         var text = "GBP";
     } else if (selectValue == "doll") {
         text = "USD";
     }
     document.getElementById("currency").innerText = text;
}
createText();
<select id="money" onchange="createText();">
<option value="pound">England</option>
<option value="doll">USA</option>
</select>


<input id="cash">
<span id="currency"></span>

【讨论】:

  • 是的,如果您单击“运行代码片段”并切换“英格兰/美国”下拉文本更新,它会起作用。
  • 旧版本的 Firefox 不支持.innerText,而是支持.textContent,所以这可能就是原因。
  • 让它正确,当我更改美国/英国时,它必须在输入后创建文本,对吗?因为它不是:(
  • 好的,明白了,我用的是firefox
  • 谢谢你,只是我缺乏知识
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多