Проверить Input
всем привет.
есть код который проверяет input if($(this).val() != "") мне нужно сделать что бы еще это поле обязательно содержало первую букву. Буквы S, M или X подскажите пожалуйста - как реализовать такую проверку? |
Цитата:
Можно регуляркой. |
Nexus,
startsWith |
if(!/^S|M|X.+/.test(this.value)) ... |
Или так...
if(!/^[SMX].+/.test(this.value)) ... |
destus, или так.
|
laimas,
без () или [] не обойтись
alert(/^S|M|X.+/.test("testM"));
|
Да, последний же захватит
|
.+ не надо
|
Цитата:
упс. разобрался )) |
Цитата:
$('.bel').each(function() {
if(/^[CMX]./.test(this.value)) {
//значение не пустое и соответствует условию
} else {
//пустое значение или не соответствует условию
}
})
|
вот не знаю только, на сколько это получилось правильно.
проверяю несколько значений на наличие буквы -
$.each($('.bel'),function(){
if($(this).val() != ""){
str = $(this).val();
if(!/^C|M|X.+/.test(str)){
console.log("false");
}
else { ..выполняю код }
}
});
|
Цитата:
|
Да елки палки, зачем $(this).val() да еще дважды, если доступен DOM объект (this) и его стандартное свойство value?
Вам чего надо: а) проверить не пусто ли и удовлетворяет условию, что походу и наблюдается; б) проверять условие только если есть значение? |
Зосимов,
var inputs = document.querySelectorAll('.bel');
var validity = [].every.call(inputs, function(node) {
var str = node.value.trim();
return !str || /^(C|M|X)/.test(str)
});
if(!validity) alert("err");
|
Цитата:
value мне нужен что бы вывести его на консоль ) |
рони, ваш вариант мне подходит. но что выводить на консоль? мне нужно вывести значения, если у всех input есть буквы первые
|
Цитата:
Как именно? То что рони написал не годится? У вас условие означает: если не пусто, то, если соответствует условию ..., иначе .... При этом не видно реакции на пустое значение. А может быть и так: если пусто или не соответствует условию, то...., иначе.... При этом может требоваться отдельно сообщать о пустом значении и несоответствии. То есть можно переписать так: если пусто ..., иначе, если не соответствует, то...., иначе .... Так чего надо то? |
Цитата:
красное уберите |
Зосимов,
var inputs=document.querySelectorAll('.bel');
var validity = [].every.call(inputs, function(node) {
var str = node.value.trim()
return /^(C|M|X)/.test(str)
});
if(validity) alert("ok");
|
Цитата:
если хоть один input не соответствует условиям то - alert("error") |
Цитата:
var inputs=document.querySelectorAll('.bel');
var res = [];
var validity = [].every.call(inputs, function(node) {
var str = node.value.trim();
res.push(str);
return str && /^(C|M|X)/.test(str)
});
if(validity) console.log(res);
else console.log("err");
|
Цитата:
может из за пустых полей? |
Цитата:
Цитата:
|
Цитата:
|
рони,
если значения ВСЕХ инпут не пусто, и значения ВСЕХ соответствуют условию |
Цитата:
пример ниже ввести во все поля M
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var inputs = document.querySelectorAll(".bel"), out = $("#out") ;
$(inputs).on("input", function() {
var res = [];
var validity = [].every.call(inputs, function(node) {
var str = node.value.trim();
res.push(str);
return str && /^(C|M|X)/.test(str)
});
out.text(validity ? res : "err")
})
});
</script>
</head>
<body>
<input name="" class="bel" value="">
<input name="" class="bel" value="">
<input name="" class="bel" value="">
<div id="out"></div>
</body>
</html>
далее сами. |
рони,
первая буква одна из, а значит должно быть кроме нее что-то, иначе неверно. Или не так, Зосимов? |
| Часовой пояс GMT +3, время: 09:16. |