即使输入值不符合要求,也会发送输入值

时间:2018-06-13 06:49:09

标签: javascript html

当我点击"添加"按钮,它添加来自" addomain"的值没有满足模式的要求。

我想用JS将模式设置为html,并在它完成后如果"值"用户在输入上引入的是符合要求

您是否知道使用JavaScript完成所有操作?

<input type="text" placeholder="Enter Domain" id="adddomain" name="adddomain" required size="15" pattern="^(?:http(s)?:\/\/)?[\w.-]{1,16}[A-Za-z0-9]{1,5}$">
<button onclick="addentrys()">Add</button><button onclick="CloseInputA()">Close</button>

1 个答案:

答案 0 :(得分:2)

您可以使用pattern(如@aMJay所述)使用form属性,这是解决问题的最快速,最优雅的解决方案。

尽管如此,如果您不想使用form,您还可以仅使用JavaScript的RegEx类检查您的值。

function addentrys() {
  let inputValue = document.getElementById("adddomain").value;
  let regexPattern = /^(?:http(s)?:\/\/)?[\w.-]{1,16}[A-Za-z0-9]{1,5}$/g;
  
  // To call a specific function
  //console.log(regexPattern.test(inputValue)); // prints true if it matches.
  regexPattern.test(inputValue) ? yourFunctionIfMatch() : console.log(false);
}

function yourFunctionIfMatch() {
  console.log(true); // instead of console.log(true) do whatever you like
}
<input type="text" placeholder="Enter Domain" id="adddomain" name="adddomain" required size="15">
<button onclick="addentrys()">Add</button><button onclick="CloseInputA()">Close</button>

注意:我不知道这是否有意,但您的表达式也匹配以下字符串:https