Javascript 如何在focusout事件的元素下动态添加范围?
我正在编写自己的验证代码,但遇到了这样一个问题:当输入的值长度为0时,我不知道如何在输入下面动态添加一个带有消息的范围。我知道我可以在每个输入元素下面放置一个跨距,并在需要时显示none,但这样做会破坏动态创建跨距的目的,并且可能需要一段时间才能根据其使用方式进行修改 我将如何着手实现这一点Javascript 如何在focusout事件的元素下动态添加范围?,javascript,Javascript,我正在编写自己的验证代码,但遇到了这样一个问题:当输入的值长度为0时,我不知道如何在输入下面动态添加一个带有消息的范围。我知道我可以在每个输入元素下面放置一个跨距,并在需要时显示none,但这样做会破坏动态创建跨距的目的,并且可能需要一段时间才能根据其使用方式进行修改 我将如何着手实现这一点 <style scoped> #userDetails { margin-top:60px; } </style> <div id="user
<style scoped>
#userDetails {
margin-top:60px;
}
</style>
<div id="userDetails" class="form-horizontal">
<div class="row">
<div class="form-group">
<label class="col-md-2 control-label" for="txtFirstName">First Name</label>
<div class="col-md-6 col-lg-6">
<input id="txtFirstName" is-required class="form-control input-sm" />
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<label class="col-md-2 control-label" for="txtLastName">Last Name</label>
<div class="col-md-6 col-lg-6">
<input id="txtLastName" is-required class="form-control input-sm" />
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<label class="col-md-2 control-label" for="txtEmail">E-mail</label>
<div class="col-md-6 col-lg-6">
<input id="txtEmail" is-required class="form-control input-sm" />
</div>
</div>
</div>
</div>
function ValidationCheck() {
let isRequired = document.querySelectorAll('[is-required]');
isRequired.forEach(function(element) {
element.addEventListener('focusout', (e) => {
if (element.value.length == 0) {
element.style.border = "1px solid red";
if (element.classList.contains("clear")) {
element.classList.remove("clear");
}
} else {
element.style.border = "1px solid green";
element.classList.add("clear");
}
});
element.addEventListener('keyup', (e) => {
element.style.border = "1px solid green";
});
});
}
#用户详细信息{
边缘顶部:60像素;
}
名字
姓
电子邮件
这是一个添加span的示例,其中包含一些文本,请根据您的需要进行编辑/更新/更改
$(文档).ready(函数(){
验证检查();
});
函数验证检查(){
让isRequired=document.querySelectorAll(“[是必需的]”);
isRequired.forEach(函数(元素){
元素。addEventListener('focusout',(e)=>{
if(element.value.length==0){
element.style.border=“1px实心红色”;
var parentDiv=element.parentNode;
var para=document.createElement(“span”);
var node=document.createTextNode(“这是新的”);
子节点(节点)段;
parentDiv.appendChild(第2段);
if(element.classList.contains(“clear”)){
元素.classList.remove(“清除”);
}
}否则{
element.style.border=“1px纯绿色”;
元素。类列表。添加(“清除”);
}
});
元素。addEventListener('keyup',(e)=>{
element.style.border=“1px纯绿色”;
});
});
}
#用户详细信息{
边缘顶部:60像素;
}
名字
姓
电子邮件
这是一个添加span的示例,其中包含一些文本,请根据您的需要进行编辑/更新/更改
$(文档).ready(函数(){
验证检查();
});
函数验证检查(){
让isRequired=document.querySelectorAll(“[是必需的]”);
isRequired.forEach(函数(元素){
元素。addEventListener('focusout',(e)=>{
if(element.value.length==0){
element.style.border=“1px实心红色”;
var parentDiv=element.parentNode;
var para=document.createElement(“span”);
var node=document.createTextNode(“这是新的”);
子节点(节点)段;
parentDiv.appendChild(第2段);
if(element.classList.contains(“clear”)){
元素.classList.remove(“清除”);
}
}否则{
element.style.border=“1px纯绿色”;
元素。类列表。添加(“清除”);
}
});
元素。addEventListener('keyup',(e)=>{
element.style.border=“1px纯绿色”;
});
});
}
#用户详细信息{
边缘顶部:60像素;
}
名字
姓
电子邮件
您可以使用以下方法创建span
标记:
此外,您还可以使用将文本设置到span
标记中
然后,通过使用,可以将创建的新span标记添加到适当的节点元素中
基本上,您需要这段代码:
span = document.createElement("span");
span.style.color = "red";
span.textContent = "Invalid!";
// Just add a span tag when is necessary.
if (!element.parentNode.children[1]) {
element.parentNode.appendChild(span); // If "element" is your input control, with parentNode finds its parent node element.
}
if (element.parentNode.children[1]) {
element.parentNode.children[1].remove();
}
更新:
当验证为OK
时,您可以使用以下代码删除添加的span
:
span = document.createElement("span");
span.style.color = "red";
span.textContent = "Invalid!";
// Just add a span tag when is necessary.
if (!element.parentNode.children[1]) {
element.parentNode.appendChild(span); // If "element" is your input control, with parentNode finds its parent node element.
}
if (element.parentNode.children[1]) {
element.parentNode.children[1].remove();
}
$(文档).ready(函数(){
验证检查();
});
函数验证检查(){
让isRequired=document.querySelectorAll(“[是必需的]”),
跨度
isRequired.forEach(函数(元素){
元素。addEventListener('focusout',(e)=>{
if(element.value.length==0){
element.style.border=“1px实心红色”;
span=document.createElement(“span”);
span.style.color=“红色”;
span.textContent=“无效!”;
//必要时只需添加一个span标记。
如果(!element.parentNode.children[1]){
元素.parentNode.appendChild(span);
}
if(element.classList.contains(“clear”)){
元素.classList.remove(“清除”);
}
}否则{
element.style.border=“1px纯绿色”;
元素。类列表。添加(“清除”);
if(element.parentNode.children[1]){
元素.parentNode.children[1]。删除();
}
}
});
元素。addEventListener('keyup',(e)=>{
element.style.border=“1px纯绿色”;
if(element.parentNode.children[1]){
元素.parentNode.children[1]。删除();
}
});
});
}
#用户详细信息{
边缘顶部:60像素;
}
名字
姓
电子邮件
您可以使用以下方法创建span
标记:
此外,您还可以使用将文本设置到span
标记中
然后,通过使用,可以将创建的新span标记添加到适当的节点元素中
基本上,您需要这段代码:
span = document.createElement("span");
span.style.color = "red";
span.textContent = "Invalid!";
// Just add a span tag when is necessary.
if (!element.parentNode.children[1]) {
element.parentNode.appendChild(span); // If "element" is your input control, with parentNode finds its parent node element.
}
if (element.parentNode.children[1]) {
element.parentNode.children[1].remove();
}
更新:
当验证为OK
时,您可以使用以下代码删除添加的span
:
span = document.createElement("span");
span.style.color = "red";
span.textContent = "Invalid!";
// Just add a span tag when is necessary.
if (!element.parentNode.children[1]) {
element.parentNode.appendChild(span); // If "element" is your input control, with parentNode finds its parent node element.
}
if (element.parentNode.children[1]) {
element.parentNode.children[1].remove();
}
$(文档).ready(函数(){
验证检查();
});
函数验证检查(){
让isRequired=document.querySelectorAll(“[是必需的]”),
跨度
isRequired.forEach(函数(元素){
元素。addEventListener('focusout',(e)=>{
if(element.value.length==0){
element.style.border=“1px实心红色”;
span=document.createElement(“span”);
span.style.color