我试图构建一个响应式表单,然后我会在我的一些网站中使用它,但被一些细节卡住了。我想用javascript启用输入验证,所以当用户在输入文本框中插入无效输入时,我希望框弹出一条错误消息,输入右侧有一个IMG标签,下面有一个DIV标签输入。我通过将这些元素附加(jQuery)到输入的父元素(一个标签)来实现这一点。
这是基本输入:
<label for="errore"><span class="title">Errato</span><input type="text" name="errore" id="errore" size="30" maxlength="30" value="Cliccami e poi esci"/></label>
这是我附加元素的方式。
$(this).parent().append("<img class='error' src='css/img/cross.png' alt='error' /><span class='error'>Input non valido.</span>");
因此,如果用户随后输入正确的输入并退出 INPUT 标签,则错误消息应该会消失。我通过删除这样的元素来做到这一点:
$(this).parent().find("*.error").remove();
它工作得很好。但是,如果我按照这个顺序:错误输入,退出元素,错误消息,正确输入,退出元素,错误消息消失,错误输入,退出元素,错误消息重新出现但图像在新行上!那只是在铬。不知道为什么。它似乎取决于 IMG 元素旁边的元素,如果它是内联元素,它在第一次和第二次都可以正常工作,如果它是块元素,它在第一次和第二次都可以正常工作。
所以,我的问题是图像元素,我不希望它换行,但我希望它旁边的元素是块元素。
我知道这可能不太清楚,所以我将包括我的例子。
在示例中,输入然后退出标题为“Errato”的输入,添加错误消息,然后输入并退出以删除它就足够了。因此,如果您这样做 3 次,您应该会收到错误的错误消息。
看起来图像要显示:块或其他东西,因为效果是那样,但是如果您检查浏览器控制台上的 css,它实际上是 display: inline。
如果您需要更多详细信息,请随时询问。