[英]How do I use document.getElementById from an input in a modal?
我有一个自制的模式(不是引导程序),我已将表单插入其中,需要使用JS来检索以下值:
<div id="openModal" class="modalDialog">
<div><a href="#close" title="Close" class="close">X</a>
<h2>Please contact me with any questions or to request a Free Home Market Analysis</h2>
<!--<form id="contact_form">-->
<p id="fname" class="form_items">
<input type="text" name="fname" id="fname" placeholder="First Name" required />
</p>
<p id="lname" class="form_items">
<input type="text" name="lname" id="lname" placeholder="Last Name" required />
</p>
<p id="email" class="form_items">
<input type="email" name="email" id="email" placeholder="Email" required />
</p>
<p id="phone" class="form_items">
<input type="tel" name="phone" id="phone" placeholder="Telephone" />
</p>
<p id="comments" class="form_items">
<textarea rows="4" cols="50" name="message" placeholder="Comments" id="message"></textarea>
</p>
<p>
<button class="submit" type="submit" onclick="submitForm();">Submit</button>
</p>
<span id="status"></span>
<!--</form>-->
</div>
</div>
<input type="text" id="test"/>
<button onclick="submitForm()">Hi</button>
测试输入和按钮是模态之外有效的示例。 这是JS:
function submitForm(){
var xmlhttp = new XMLHttpRequest();
var fn = document.getElementById('fname').value;
var ln = document.getElementById('lname').value;
var e = document.getElementById('email').value;
var p = document.getElementById('phone').value;
var m = document.getElementById('message').value;
alert(fn);
var test = document.getElementById('test').value;
alert(test);
}
第一个警报(fn)警报“未定义”,而第二个警报(test)警报我输入到测试输入框中的值。
为什么会这样?解决方法是什么? 我尝试制作jsfiddle: https ://jsfiddle.net/k1g9dq7w/,但是Fiddle无效,也许有人对JsFiddle以及为什么这样做了解得更多。
从<p>
删除id
。 id
在文档中是唯一的。
<p>
标签和<input>
标签的id应该不同。
在您的情况下, getElementById('fname')
方法访问了<p>
标记,因为它是第一个ID等于'fname'的标记。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.