javascript - 即使输入文本有效(Java 脚本或 Jquery),如何强制输入文本无效
问题描述
我有一个包含姓名、电子邮件和电话的表格。名称和电子邮件验证工作正常。但是电话验证不起作用。所以我使用了 intelInputPhone 验证。现在我可以验证我的电话号码,但表单仍然提交错误的输入,因为它只是考虑默认验证。如果 intelInputPhone 验证无效,我想强制它无效。所以这是主要问题:
如何更改输入的验证状态?
解决方案
但表单仍然提交错误的输入,因为它只是考虑默认验证
我认为您期望此intelInputPhone模块具有 HTML5 验证行为。那是行不通的。
您现在必须在提交函数中处理验证。
看一下片段。
var phoneInputElement = document.querySelector("#phone");
const phoneInput = window.intlTelInput(phoneInputElement, {
initialCountry: "us",
});
$("#form").submit(function(event) {
if (!phoneInput.isValidNumber()) {
const errorCode = phoneInput.getValidationError();
const errorMessage = (Object.entries(intlTelInputUtils.validationError).find(([key, value]) => value === errorCode) || ["INVALID_CODE",-1])[0]
$("#phoneError").text(errorMessage)
event.preventDefault();
return;
}
var values = {};
$('#form :input').each(function() {
values[this.name] = $(this).val();
});
console.log(values);
event.preventDefault();
});
#phoneError {
color: red;
}
input, button, div.iti {
margin-top: 1rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.0/js/utils.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.0/js/intlTelInput.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.0/css/intlTelInput.css">
<form id="form">
<input required type="text" name="name" placeholder="Enter name">
<input required type="email" name="email" placeholder="Enter email">
<input type="tel" id="phone" name="phone">
<div id="phoneError"></div>
<button type="submit">Send</button>
</form>
推荐阅读
- swift - UISwitch 保存要在函数中使用的值
- c++ - NoFieldsClass::operator new(std::size_t):标准是否允许它每次调用时返回相同的地址?
- python - 当我尝试使用 Paffy 获取 YouTube 播放列表的视频链接时出现错误
- firebase - 在 Firestore 安全规则中,我们应该避免错误还是与拒绝相同
- arduino - 使用大于和小于运算符理解代码
- r - 如何修复标签注释更改直方图
- python - 在 ForceElement 的子类上调用 super().__init__() 导致未定义构造函数
- node.js - 即使我的 PATH 指向 nodejs,节点也无法识别。我该如何解决?
- network-programming - SNMPv1 的 MIB 文件设计
- tsql - oledb源ssis中带有in子句的sql查询