1

我正在制作一个验证功能,它会为patternMismatch.

到目前为止,它显示了消息,但对于所有输入类型都是相同的。

const inputs = document.querySelectorAll("input");
inputs.forEach(function(input){

  input.addEventListener("blur", function() {

    if (input.validity.patternMismatch) {
      if (e_space) {
        e_space.textContent = "This field can only contain letters from a-z.";
        input.classList.add("b-r");
      }
    }

})

现在我正在尝试为不同input type的 s 显示不同的消息,但我似乎找不到选择特定类型的方法。

我试过了if(input.type["text"])if(input.type.text)但没有显示任何消息。if(input["type=text"]

IE:

if(input.type["text"]){
  if(input.validity.patternMismatch){
     if(e_space){
        e_space.textContent = "This field can only contain letters from a-z.";
        input.classList.add("b-r");
     }
  input.classList.add("input-red");
  }
}

欢迎任何帮助。谢谢你。

小提琴

4

2 回答 2

2

用于.matches检查被迭代的输入是否匹配特定的选择器 - 例如,它是否具有属性:

if (input.matches('[type="text"]')) {
于 2021-02-20T16:26:08.427 回答
1

关于什么:

if (input.type=="text") { 
          //Whatever
}
于 2021-02-20T16:30:48.400 回答