在这段代码中,当输入为空时,你按下submit,弹出一个错误消息,但它按下了按钮,我试图阻止按钮被按下,我该怎么做呢?此代码也可作为CodePen提供。第一个这是错误消息出现前后的垂直位移。添加了水平线以比较位置。
cmssoen21#
.preventDefault()完成了它的工作,但是你应该把它放在if块中。在下面的代码片段中,表单只有在输入字段包含一些文本时才会被提交。如果问题是由于插入错误消息而引起的微小垂直偏移,则可以通过使其始终可见并保持最小高度并相应地简单地更改其.textContent来避免这一问题。第一个
.preventDefault()
if
.textContent
wgx48brx2#
visibility:hidden隐藏元素,但它仍会占用布局中的空间。display:none从文档中删除元素。
您可以在CSS中添加以下更改:
small { font-style: italic; color: red; text-align: right; width: 15em; visibility: hidden; height:10px; margin: 0; } .error small { visibility: visible; }
以及JS中的以下变更
function addError(message) { const small = document.querySelector("small"); small.classList.add("error"); small.innerText = message; small.style.visibility= "visible"; }
2条答案
按热度按时间cmssoen21#
.preventDefault()
完成了它的工作,但是你应该把它放在if
块中。在下面的代码片段中,表单只有在输入字段包含一些文本时才会被提交。如果问题是由于插入错误消息而引起的微小垂直偏移,则可以通过使其始终可见并保持最小高度并相应地简单地更改其
.textContent
来避免这一问题。第一个
wgx48brx2#
visibility:hidden隐藏元素,但它仍会占用布局中的空间。display:none从文档中删除元素。
您可以在CSS中添加以下更改:
以及JS中的以下变更