Javascript 我想验证用户在编写时的伪代码是否良好
我正在创建一个小型社区博客,我希望每个新用户都有一个以大写字母开头的昵称,后跟至少两个小写字母,后跟至少一个数字,我想先用javascript然后用php进行检查 对于javascript检查,我希望在字段(事件输入)中键入时发生这种情况,如果昵称与规则不匹配,则输入字段的边框会像大多数网站一样变为红色Javascript 我想验证用户在编写时的伪代码是否良好,javascript,Javascript,我正在创建一个小型社区博客,我希望每个新用户都有一个以大写字母开头的昵称,后跟至少两个小写字母,后跟至少一个数字,我想先用javascript然后用php进行检查 对于javascript检查,我希望在字段(事件输入)中键入时发生这种情况,如果昵称与规则不匹配,则输入字段的边框会像大多数网站一样变为红色 为此,我有一个处理着色的函数,它接受两个参数,另一个检查输入的数据是否对应于它包含的正则表达式。后者也需要一个参数。但是我的代码并没有像我希望的那样工作。请引导我 function surlig
为此,我有一个处理着色的函数,它接受两个参数,另一个检查输入的数据是否对应于它包含的正则表达式。后者也需要一个参数。但是我的代码并没有像我希望的那样工作。请引导我
function surligne(champ, erreur)
{
if(erreur)
champ.style.backgroundColor = "red";
else
champ.style.backgroundColor = "";
}
function verifPseudo(champ)
{
var regex= /^[A-Z][a-z]{2,}[0-9]+/;
if(!regex.test(champ.value))
{
surligne(champ, true);
return false;
}
else
{
surligne(champ, false);
return true;
}
}
var pseudoElt=document.getElementById("pseudo");
pseudoElt.addEventListener("input", verifPseudo(this));
在另一个论坛上,有人告诉我问题来自我在AddEventListener中的函数我认为问题在于这行代码
pseudoElt.addEventListener("input", verifPseudo(this));
您不能传递这样的参数,因为它正在调用该函数,而不是在事件发生时被调用。您可以在此处查看更多信息以及如何解决此问题:在
veripseudo
中传递此将不起作用,因为此
不是输入字段,而是整个窗口、页面、文档,不管它叫什么
您可以在我更改后尝试此代码
function surligne(champ, erreur)
{
if(erreur)
champ.style.backgroundColor = "red";
else
champ.style.backgroundColor = "";
}
function verifPseudo(champ)
{
var regex= /^[A-Z][a-z]{2,}[0-9]+/;
if(!regex.test(champ.target.value)) //passed target elements value
{
surligne(champ.srcElement, true); //passed the source element to work on
return false;
}
else
{
surligne(champ.srcElement, false);
return true;
}
}
var pseudoElt=document.getElementById("pseudo");
pseudoElt.addEventListener("input", e => { //changed from verifPseudo(this)
verifPseudo(e)
});
如果您不想要ES6代码,那么改用此事件侦听器
pseudoElt.addEventListener("input", function(e){
verifPseudo(e);
});
pseudoElt.addEventListener(“输入”,veripseudo)代码>然后在你的verifseudo
函数中使用this
而不是champ
。“我的代码没有像我希望的那样工作”:请详细说明。你好,黑暗的绝对尼特,我已经用“this”替换了我函数verifseudo中的所有“champ”,但没有任何效果。你好,斯科特·亨特;当伪字段没有按照我的要求编写时,我希望伪字段为红色