繁体   English   中英

调用输入字段变量时控制台日志返回空值

[英]Console log returning empty value when calling for input field variable

为什么在调用文本输入的变量时 console.log 返回一个空行。

HTML

                        <label for="subject">Subject</label>
                        <input type="text" id="subject" name="ticket-subject" />

Javascript

我尝试了实际的表单,它的console.log在提交时工作得很好,但不知何故ticketSubject的值似乎是空的。

const ticketForm = document.querySelector('.ticket-form')
const ticketSubject = document.getElementById('subject').value;

ticketForm.addEventListener('submit', (e)=> {
    e.preventDefault()
    console.log(ticketSubject)
    console.log('The form submit works')
})

这是主题字段:

但它什么都不返回:

在页面首次加载时,您会在用户有机会输入值之前立即读取输入值。 改为读取submit事件处理程序中的值:

 const ticketForm = document.querySelector('.ticket-form') ticketForm.addEventListener('submit', (e)=> { e.preventDefault() // read the value here const ticketSubject = document.getElementById('subject').value; console.log(ticketSubject) console.log('The form submit works') })
 <form class="ticket-form"> <label for="subject">Subject</label> <input type="text" id="subject" name="ticket-subject" /> <input type="submit" value="Submit" /> </form>

您需要读取addEventListener()处理程序中的值,否则该值会在事件发生之前存储,并且永远不会显示在console.log()

 const ticketForm = document.querySelector('.ticket-form') ticketForm.addEventListener('submit', e => { e.preventDefault() console.log(document.getElementById('subject').value); console.log('The form submit works') })
 <form class="ticket-form"> <label for="subject">Subject</label> <input type="text" id="subject" name="ticket-subject" /> <button type="submit"> submit</button> </form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM