Проверка полей формы

  • Автор темы Inferoom
  • Обновлено
  • 17, May 2024
  • #1
Привет, я здесь новичок, надеюсь, кто-нибудь меня спасет.

У меня есть форма с кнопкой расчета - при нажатии этой кнопки она выполняет простую проверку введенных полей и либо отправляет правильное значение, либо сообщение, касающееся ошибки поля.

Все работает отлично, за исключением одного поля, с которым я не могу работать.

Я хочу сказать, что если в поле «os7» не все заглавные буквы, отправьте сообщение в поле «calcprice» «ID недействителен».

Я немного новичок, поэтому, пожалуйста, извините меня.

Это то, что я пробовал, но не работает

if(form.os7.value != (/^[A-Za-z]+$/)) {return form.calcprice.value = "ID недействителен"; }

Я использовал очень похожее в других полях, но значение было конкретным, поэтому мне интересно, может быть, виноваты пунктуация или значение в скобках, потому что это работает нормально:

if (form.os2.value == "Y" || form.os2.value == "Z" || form.os2.value == "Za") {return form.calcprice.value = "Извините, цены в приложении "; }

с нетерпением жду вашего ответа

Спасибо

Inferoom


Рег
23 Feb, 2014

Тем
93

Постов
198

Баллов
703
  • 18, May 2024
  • #2
Привет! Я уверен, что это легко, но я совершенно не знаю, как это сделать. Я разместил ваш jsfiddle, и ничего не работает, так что, думаю, я полный тупица. Я рад поделиться тем, что мне нужно, чтобы найти решение, но я не знаю, как
 

Blog_muz_ru


Рег
01 Jan, 2011

Тем
57

Постов
199

Баллов
534
  • 19, May 2024
  • #3
В коде, который, как вы говорите, у вас есть сейчас, это не работает (этот: if(form.os7.value != (/^[A-Za-z]+$/)) {return form.calcprice.value = "ID недействителен" }) - вы пробовали просто изменить A-Za-z на A-Z? Это должно разрешать только верхний регистр
 

Petr228


Рег
17 Dec, 2014

Тем
81

Постов
197

Баллов
642
  • 22, May 2024
  • #5
Они не мочь переопределите это решение jquery, скопировав и вставив.

Похоже, вы не проверяли тот jsfiddle, который я вам дал.

Единственный способ сделать это — отключить JavaScript в своих браузерах.

Но тогда, вероятно, ни одно из ваших решений не помешает им делать все, что они хотят. Я понимаю, что вы пытаетесь создать сообщение об ошибке постфактум, лично я считаю, что вам нужно с самого начала убедиться, что они могут вводить только правильные данные.
 

Crymnammerutt


Рег
07 Mar, 2013

Тем
68

Постов
179

Баллов
539
  • 31, May 2024
  • #6
Хорошо, спасибо за ваши ответы, но, возможно, я не совсем ясно выразился - я понимаю все вышеперечисленное, и поле работает отлично - люди могут вводить только заглавные буквы.

Моя проблема в том, что они могут отменить это, скопировав/вставив в поле, если захотят, и, поверьте мне, они попытаются это сделать.

Итак.

У меня есть скрипт, который проверяет правильность всех полей при нажатии кнопки - и они нажимают ее, потому что он вычисляет цену, если все поля введены правильно.

В этом сценарии я хочу, чтобы он говорил, что если поле os7 состоит не только из заглавных букв (без цифр), тогда {return form.calcprice.value = "ID Invalid"; }

Как показывает мой первый пост, этот метод отлично работает для всех остальных полей — только для этого я не могу разобраться с синтаксисом.

Мой сценарий начинается так: -

функция CalculateBasic(форма) {

«используйте строгий»;

if (form.os2.value == "Y" || form.os2.value == "Z" || form.os2.value == "Za") {return form.calcprice.value = "Извините, цены в приложении "; }

if ((form.os0.value == "Обычный закрытый" || form.os0.value == "Закрытый с черной заливкой" || form.os0.value == "Обычный разделенный" || form.os0.value == "Разделение с черной заливкой") & & form.os1.value != "Обычный") {return form.calcprice.value = "цвета недоступны с этими параметрами"; }

if ((form.os0.value == "Анодированный сплит") & & form.os1.value == "Обычный" ) {return form.calcprice.value = "Пожалуйста, выберите цвет"; }

много посередине ........ и заканчивается

if (form.os0.value == "Разделение с черной заливкой" & & form.os3.value == (40) ) {return form.calcprice.value = "27.00"; }

if (form.os0.value == "Разделение с черной заливкой" & & form.os3.value == (50) ) {return form.calcprice.value = "32,48"; }

вернуть истину;

}
 

Blazze


Рег
26 Nov, 2012

Тем
76

Постов
223

Баллов
623
  • 01, Jun 2024
  • #7
Это в jquery. Возможно, кто-то сможет придумать что-то подобное в JavaScript. Однако это работает. Измените .lettersonly на свой класс:
http://jsfiddle.net/HwTEj/387/

 

<script type="text/javascript" src="[URL='https://lumtu.com/yti/a4SS4anNodHRwOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjkuMkjL']http://code.jquery.com/jquery-1.9.1.js[/URL]"></script>

<script>
$(function() {
 $('.lettersonly').keyup(function() {
 this.value = this.value.toUpperCase();
 });
});

$(".lettersonly").on("input", function(){
 var regexp = /[^a-zA-Z]/g;
 if($(this).val().match(regexp)){
 $(this).val( $(this).val().replace(regexp,'') );
 }
});
</script>
Код (разметка):
 

Jfinister


Рег
16 Sep, 2015

Тем
74

Постов
219

Баллов
599
  • 01, Jun 2024
  • #8
Привет и спасибо всем за ваши усилия - я попробовал все, но с треском провалился - теперь решил проблему, просто запретив «вставку» в этом поле, чтобы буквы и прописные буквы работали - поэтому окончательная проверка не требуется, поскольку ее нельзя вставить в
 

Make_girl_dance


Рег
01 Jan, 2011

Тем
67

Постов
225

Баллов
600
  • 09, Jun 2024
  • #9
Я создал здесь тестовую форму, и она, кажется, работает: https://jsfiddle.net/ujggz7r9/1/

Возможно, опубликуйте весь свой код, включая форму (в тегах кода для удобства чтения).
 

Witto


Рег
27 Oct, 2010

Тем
73

Постов
158

Баллов
583
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно