如果我有一个输入域和用于某个正则表达式模式属性,是否有可访问输入DOM元素,并且如果在其当前值符合验证一个JavaScript/JQuery的功能与模式?如何验证输入栏用JavaScript
0
A
回答
2
您将需要使用HTML5 Validity Framework(检查节“使用JavaScript验证表单”),它提供了一个validity
对象为已确认为它设置每个字段。这个validity
对象公开了一组“有效性约束”(HTML5本身提供的每种验证类型)。
在你的情况,你要检查validity.patternMismatch
的元素,看它是否是无效的。但是,只有一种类型的验证应用于元素validity.valid
就足够了。
下面,我们有一个表单字段是必需的和已建立的一种模式。在这种情况下,知道该字段无效可能不足以达到您的目的,因此代码不仅会告诉您该元素是否无效,而且会显示您可以检查个别约束以了解其原因。
尽量不要输入任何数据,并点击提交按钮。这会告诉你这个元素是无效的,但是如果你看一下约束报告,你会在那种情况下看到valueMissing = true
。然后尝试输入几个字符,您仍然会看到它显示为无效,但在此情况下将显示patternMismatch = true
。
var field = document.getElementById("ss");
var btn = document.getElementById("btnValidity");
btn.addEventListener("click", function(evt){
console.clear();
// You can test for simple validity with the valid property
console.log("Is field valid? " + ss.validity.valid);
// And, you can get more specific by checking all the validity constraints
// Here, we're just looping the entire set for demo purposes
for(var constraint in ss.validity){
if(ss.validity[constraint]){
console.log(constraint + " = " + ss.validity[constraint]);
}
}
});
/* Valid and invalid elements can show their state in real time with CSS pseudo-classes */
input[type=text]:active, input[type=text]:focus { outline:none; }
input[type=text]:valid { box-shadow:0 0 3px green; }
input[type=text]:invalid { box-shadow:0 0 3px red; }
SS#: <input type="text" required pattern="^\d{3}-\d{2}-\d{4}$" id="ss" placeholder="xxx-xx-xxxx">
<button id="btnValidity">Check validity</button>
1
HTMLInputElement.checkValidity()
,supported by IE 10 and later,将检查所有约束的一次。
console.log(document.getElementById('a').checkValidity())
console.log(document.getElementById('b').checkValidity())
<input id="a" pattern="a+" value="aaaa" />
<input id="b" pattern="a+" value="aaba" />
0
$(function() {
var $input = $('#my-input');
$input.on('change', function() {
var pattern = $input.attr('data-my-pattern-attr');
var regex = new RegExp(pattern, "g");
if ($input.val().match(regex)) {
console.log('matches');
} else {
console.log('no match');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="my-input" data-my-pattern-attr="[a-z]+" />
相关问题
- 1. 如何使用JavaScript验证输入?
- 2. 如何验证输入使用javascript
- 3. Javascript输入验证
- 4. JavaScript输入验证
- 5. Javascript用户输入验证
- 6. 使用Javascript验证输入
- 7. 使用JavaScript输入验证
- 8. Javascript验证用户输入
- 9. Javascript用户输入验证
- 10. Javascript - 验证空输入
- 11. 验证输入是在JavaScript
- 12. Html和javascript输入验证
- 13. javascript函数输入验证
- 14. 使用JavaScript验证用户输入
- 15. 如何验证textField输入?
- 16. 如何验证DataGridView输入?
- 17. 验证特定的输入,使用Javascript
- 18. 验证输入字段使用javascript
- 19. 用户输入(regExp)的Javascript验证
- 20. 使用Javascript验证输入表单
- 21. 如何验证用户输入?
- 22. 如何验证用户输入的值?
- 23. 如何验证用户输入
- 24. 如何使用JavaScript验证动态生成的输入框
- 25. 在用户输入验证 - Grails验证
- 26. 输入验证
- 27. 验证输入
- 28. 验证输入
- 29. 验证输入
- 30. 如何在Javascript(Jquery)中定义验证器函数来验证输入字段?
问题不标记与jQuery。 –
@ScottMarcus OP在问题中指定了“javascript/jquery”。 – hyubs
啊,没有看到。标题和问题仅用JavaScript标记。 –