Javascript HTML DOM目标属性self

Javascript HTML DOM目标属性self,javascript,html,css,dom,Javascript,Html,Css,Dom,我的注册页面上有相当多的字段,但错误消息只会显示在页面顶部,我不希望客户端不断向上滚动,以查看当他们在该字段上键入错误时的错误消息。我可以知道如何使用target或任何其他方法处理此案例吗 这是我的屏幕示例,当用户输入错误信息时,错误信息实际上显示在屏幕顶部,但用户必须向上滚动并检查错误信息,是否有任何方法可用于聚焦/目标/向上滚动以查看错误信息? 这是我当前的屏幕示例代码:1 p/s:i only do function for username字段,当在username字段上启用模糊时,它

我的注册页面上有相当多的字段,但错误消息只会显示在页面顶部,我不希望客户端不断向上滚动,以查看当他们在该字段上键入错误时的错误消息。我可以知道如何使用target或任何其他方法处理此案例吗

这是我的屏幕示例,当用户输入错误信息时,错误信息实际上显示在屏幕顶部,但用户必须向上滚动并检查错误信息,是否有任何方法可用于聚焦/目标/向上滚动以查看错误信息?

这是我当前的屏幕示例代码:1 p/s:i only do function for username字段,当在username字段上启用模糊时,它将运行javascript函数

是,如果设置location.hash,它将滚动页面到具有该id的元素

例如:

document.querySelectorinput[type=button].onclick=function{ document.getElementByIderror.style.display=; location.href=错误; }; 一直滚动到底部

填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料 填料
在不更改任何HTML的情况下,一种解决方案是在导致验证错误的输入旁边添加错误消息

您可以使用浮动div和无数其他方式—这取决于您希望如何显示错误,但现在,我认为您需要的是问题点上的消息

将验证函数更改为以下内容,允许消息在失去焦点时显示在无效输入旁边,并在有效时将其删除。显然,您可以对其进行不同的定位和样式设置,但功能如下:

var errorLabelSuffix=ErrorMessage; 函数fnICID,值{ 如果值=={ //数据验证失败。。。 //检查标签是否已显示,如果已显示则返回。 如果document.getElementByIdID+errorLabelSuffix{ 回来 } //否则,获取当前无效元素a元素的父元素。 var invalidElement=document.getElementByIdID.parentNode; //创建以显示错误消息。 var errorMessageLabel=document.createElementspan; //给出传入的Id的Id以及指示它是错误标签的内容。 errorMessageLabel.id=id+errorLabelSuffix; //设置所需的任何错误消息。 errorMessageLabel.innerHTML=输入无效; //将新元素添加到包含无效输入的DOM中。 invalidElement.appendChilderrorMessageLabel; //仍然可以这样做,或者将其用于错误摘要。 error\u functionERRORMSG,ID,errMsg; }否则{ //已通过验证。。。 //获取输入元素及其父元素。 var validElement=document.getElementByIdID.parentNode; var errorMessageLabel=document.getElementByIdID+errorLabelSuffix; //如果错误标签已经显示,则如果输入始终有效且仍然有效,则可能不会显示错误标签-将其从DOM中删除。 if errorMessageLabel&&validElement{ validElement.removeChilderrorMessageLabel; } } } 函数错误\u functionmessage,ID,labelID{ 调试器; document.getElementByIdlabelID.target=\u self; document.getElementByIdlabelID.innerHTML=消息; document.getElementByIdlabelID.style.display=inline; document.getElementByIdID.style.background=ffcee; document.getElementByIdID.style.border=单色红色; document.getElementByIdID.value=;
}您好@T.J.Crowder,谢谢您的解决方案,但对于这种关心。。。验证不是通过按钮进行检查,而是直接检查用户是否输入了错误的内容。我用的是onblur函数。函数fnICID,值{error\u functionERRORMSG,ID,errMsg}函数error\u functionmessage,ID,labelID{document.getElementByIdlabelID.innerHTML=message;document.getElementByIdlabelID.style.display=inline;}对于像Finally这样的Labelsound,您可能会喜欢position:fixed for your errors,因为现在用户必须再次向下滚动才能找到他们犯错误的字段。