Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript更新失败_Javascript_Html - Fatal编程技术网

Javascript更新失败

Javascript更新失败,javascript,html,Javascript,Html,全部, 下面是使用用户输入的输入更新字段的简单代码。但是,更新没有发生。有人能告诉我这里的问题吗 <html> <head> <title>Rooms</title> <script type="text/javascript"> function populate() { var newName = document.getElementsByN

全部,

下面是使用用户输入的输入更新字段的简单代码。但是,更新没有发生。有人能告诉我这里的问题吗

<html>
   <head>
      <title>Rooms</title>
      <script type="text/javascript">
         function populate()
         {
            var newName = document.getElementsByName("roomNameInput").value;
            document.getElementsByName("nameDisplay").value = newName;
         }
      </script>
   </head>
   <body>
      <h3>Configure: </h3><i name="nameDisplay"></i><br />
      Enter the Room name: <input type="text" name="roomNameInput" onkeypress="populate()"><br />
   </body>
</html>
尝试使用document.getElementsByNameDisplay.innerHTML,但失败

名称显示不是输入,因此您必须通过设置innerHTML属性而不是值来更改其内容。此外,getElementsByName在那里也不起作用,您必须将它的id设置为nameDisplay,并使用getElementById

getElementsByName将返回一个元素数组,因此必须选择第一个元素才能获取值:

var newName = document.getElementsByName("roomNameInput").value;
您还可以设置输入的id值,并使用getElementById来选择它

要使事情更简单,请使用框架:

function populate() {
    var newName = $('[name="roomNameInput"]').val();
    $("#nameDisplay").text(newName);
}

也许你可以尝试改变:

document.getElementByName("nameDisplay").value = newName;

但是,如果我能建议,用面糊做: 在HTML中:

然后 在Javascript中:

document.getElementById("nameDisplay").innerHTML = "<i>"+newName+"</i>";
document.getElementsById返回一个元素数组,因此快速修复方法是执行以下操作:

var newName = document.getElementsByName("roomNameInput")[0].value;
document.getElementsByName("nameDisplay")[0].innerHTML = newName;
更好的解决方案是将name属性替换为id,并替换为,因为它不再是标准的:

<em id="nameDisplay"></em>
<input type="text" id="roomNameInput" onkeypress="populate()" />
HTML应该是这样的

<h3>Configure: </h3>
       <em id="nameDisplay"></em><br />
      Enter the Room name: <input id="roomNameInput" type="text" onkeyup="populate()"><br />

工作小提琴做出了改变。。未定义需要显示输入文本的位置。将onkeypress=populate更改为onkeypress=populate-双括号在将其指定为handlerchange roomNameInput的同时执行该函数
document.getElementById("nameDisplay").innerHTML = "<i>"+newName+"</i>";
var newName = document.getElementsByName("roomNameInput")[0].value;
document.getElementsByName("nameDisplay")[0].innerHTML = newName;
<em id="nameDisplay"></em>
<input type="text" id="roomNameInput" onkeypress="populate()" />
var newName = document.getElementById("roomNameInput").value;
document.getElementById("nameDisplay")[0].innerHTML = newName;
<h3>Configure: </h3>
       <em id="nameDisplay"></em><br />
      Enter the Room name: <input id="roomNameInput" type="text" onkeyup="populate()"><br />
var populate = function(){
    var a = document.getElementById('roomNameInput').value;
    document.getElementById('nameDisplay').innerHTML = a; 
}