Проверить 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, время: 10:50. |