作为一位长期的网络工程师,至少可以说Javascript一直是一个挑战。我正在寻找使用HTML和Javascript创建用于进行网络设备配置的模板。 HTML部分非常基础。只是带有输入字段和按钮的表单:
<body>
<form id="form1">
<label for="siteCode">Site Code: </label>
<input type="text" id="siteCode" name="name" placeholder="ex. HEN" required="required"/><br>
按钮用于调用名为“ makeConfig”的Javascript函数
当尝试从HTML获取“ siteCode” ID时,我遇到了一个问题:
var siteCode = document.getElementById("siteCode");
function makeConfig() {
var myWindow = window.open("", "MsgWindow", "width=1000,height=850");
myWindow.document.write("service nagle<br>no service pad<br>service tcp-keepalives-in<br>service tcp-keepalives-out<br>");
myWindow.document.write("service timestamps debug datetime localtime show-timezone<br>service timestamps log datetime localtime show-timezone");
myWindow.document.write("service password-encryption<br>service compress-config<br>!<br>");
myWindow.document.write("hostname P" + siteCode + "A01M01UAA<br>!<br>");
}
最后一行始终为null
生成一个siteCode
值。我认为这很简单,但是我正在空白。预先感谢您的帮助!
答案 0 :(得分:0)
siteCode
将是对元素的DOM(文档对象模型)节点的引用;其中包含一堆您可能不想打印的对象和属性。
相反;您可能想要用户输入的文本。为了那个原因;你可以做类似的事情
myWindow.document.write("hostname P" + siteCode.value + "A01M01UAA<br>!<br>");
注意,我们正在获得它的价值(siteCode.value
);而不只是原始元素。
对于这样的事情;另一个常见的错误是JavaScript可能在页面其余部分加载之前就已运行;因此该元素可能根本还没有加载。但是,由于您已将其放入函数中;因此,我假设这不是这里发生的事情;并且仅当用户按下按钮时才运行它;等等。可能需要检查一下。