Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2021, 19:09   #1
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию как в JS узнать - нажата ли кнопка radiobutton

Здраствуйте,я сделала вот такую форму регистрации с проверками,ну незнаю как проверить выбрана ли пользвателем радиокнопка,если не выбрана то написать сбоку Поле не заполнено,или что-то похожее,вот код
Код:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<style>
        table{
        background:#eeeeee;
        padding:5px;
        border:1px #777777 solid;}
        .vld{   background:#eeeeee;
            border:0px}
        .zorka,.vld{color:red;
        } 
        .error {

display: none;

}
    </style>
    <script language="JavaScript">
 
var myForm;
 
function Name(nam)
    {
        if (nam=="")
        {
            myForm.vnam.value = "Поле не заполнено";
        return false;}
    var nam1 = /^[a-zA-Zа-яА-я]*$/;
        if (!nam1.test(nam))
        {
        myForm.vnam.value = "Неправильно введено имя";
        return false;
        }
        else    
        {
        myForm.vnam.value ="";
        return true;
        }
    }
    
    function Family(fam){
        if (fam=="")
        {
        myForm.vfam.value = "Поле не заполнено";
        return false;
        }
        var fam1 = /^[a-zA-Zа-яА-я]*$/;
        if (!fam1.test(fam))
        {
        myForm.vfam.value = "Неправильно введена фамилия";
        return false;
        }
        else    
        {
        myForm.vfam.value ="";
        return true;
        }
    }
    function Organization(org){
        if(org==""){
            myForm.vorg.value= "Поле не заполнено";
        return false;
        }
        var org1 = /^[a-zA-Zа-яА-я_\-. ]*$/;
        if (!org1.test(org))
        {
        myForm.vorg.value = "Неправильно введено название!!";
        return false;
        }
        else    
        {
        myForm.vorg.value ="";
        return true;
        }
    }
    
function mailValid(email)
    {
 
        if (email=="")
        {
        myForm.vMail.value = "Поле не заполнено";
        return false;
        }
        var reg = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/;
        if (!reg.test(email))
        {
        myForm.vMail.value = "Неправильный e-mail адрес";
        return false;
        }
        else    
        {
        myForm.vMail.value ="";
        return true;
        }
    }   
    function TelefonValid(telefon){
        if (telefon=="")
        {
        myForm.vtelef.value = "Поле не заполнено";
        return false;
        }
        var tel = /^[0-9]+$/;
        if (!tel.test(telefon))
        {
        myForm.vtelef.value = "Неправильно введен мобильный телефон";
        return false;
        }
        else    
        {
        myForm.vtelef.value ="";
        return true;
        }
    }
    function pochtad(adress){
        if (adress=="")
        {
        myForm.vadress.value = "Поле не заполнено";
        return false;
        }
        var poc =/[а-яА-Я0-9_\-. ,]$/;
        if (!poc.test(adress))
        {
        myForm.vadress.value = "Неправильно введен адрес";
        return false;
        }
        else    
        {
        myForm.vadress.value ="";
        return true;
        }
    }
    function adrsaita(sayt){
        if (sayt=="")
        {
        myForm.vsayt.value = "Поле не заполнено";
        return false;
        }
        var say =/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/;
        if (!say.test(sayt))
        {
        myForm.vsayt.value = "Неправильно введен адрес";
        return false;
        }
        else    
        {
        myForm.vsayt.value ="";
        return true;
        }
    }
   
    function validate(mF)
    {
   
    myForm = mF;
    var nam = Name(myForm.nam.value);
    var fam = Family(myForm.fam.value);
    var org=Organization(myForm.org.value);
    var mail = mailValid(myForm.mail.value);
    var tele=TelefonValid(myForm.tele.value);
    var adress=pochtad(myForm.adress.value);
var sayt=adrsaita(myForm.sayt.value);



    return nam&&fam&&org&&mail&&tele&&adress&&sayt;
    }
   

    </script>   
  </head>
  <body>
    <table >
    <tr><td colspan="3" align="center"><h3>Регистрационная форма </h3></td></tr>
    <form name="myForm" onsubmit="return validate(this);">
        <tr><td>Фамилия<span class="zorka">*</span></td><td><input type="text" name="fam" maxlength = "16" ></td><td><input type="text" class="vld" name="vfam" readonly ></td></tr>
        <tr><td>Имя<span class="zorka">*</span></td><td><input type="text" name="nam" maxlength = "16" ></td><td><input type="text" class="vld" name="vnam" readonly ></td></tr> 
        <tr><td>Организация<span class="zorka">*</span></td><td><input type="text" name="org" maxlength = "50" ></td><td><input type="text" class="vld" name="vorg" readonly ></td></tr>
        <tr><td>Почтовый адресс<span class="zorka">*</span></td><td><input type="text" name="adress" maxlength = "500"></td><td><input type="text" class="vld" name="vadress" readonly ></td></tr> 
        <tr><td>Мобильный телефон<span class="zorka">*</span></td><td><input type="text" name="tele" maxlength = "24"></td><td><input type="text" class="vld" name="vtelef" readonly ></td></tr>       
        <tr><td>E-mail<span class="zorka">*</span></td><td><input type="text" name="mail" maxlength = "24"></td><td><input type="text" class="vld" name="vMail" readonly ></td></tr>    
      
            <tr><td>Сайт пользователя<span class="zorka">*</span></td><td><input type="text" name="sayt" maxlength = "50"></td><td><input type="text" class="vld" name="vsayt" readonly ></td></tr>    
       <tr><td>Обиріть ваш вид відвідування<span class="zorka">*</span></td><td><input type="Radio" value="Java"><span>Прямое</span>
            <input type="Radio"  value="C#"><span>Заочное</span></td></tr>
           
    <tr><td></td><td colspan="2"><input  type="submit"  value="Зарегистрироваться"></td></tr>  </div>
    
    </form>
    </table>
    <div id="printBlock"></div>
       
       
       
</body>
</html>
nonameii3ii вне форума Ответить с цитированием
Старый 29.10.2021, 13:03   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Почему у сайта и email одинаковый регэксп? Добавьте одинаковый name к радиокнопкам, чтобы нельзя было выбрать обе. А нельзя просто одну из радиокнопок сделать выбранной по умолчанию с помощью checked, а не выводить сообщение, что ничего не выбрано?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.10.2021, 16:54   #3
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию

Нет нужно вывести сообщение(

И заодно можете подсказать регєксп для сайта

Последний раз редактировалось BDA; 29.10.2021 в 20:42.
nonameii3ii вне форума Ответить с цитированием
Старый 29.10.2021, 20:42   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

По поводу проверки и вывода сообщения - абсолютно также, как и остальные поля (то есть сравнивать value радиокнопки с пустой строкой). По поводу проверки сайта, например (отсюда):
Код:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.10.2021, 21:04   #5
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию

так?
Код:
function KnopkaValid(knopka, objMessage) {
        if (knopka == '') {
          objMessage.value = 'Поле не заповнене';
          return false;
        }
        
        }
nonameii3ii вне форума Ответить с цитированием
Старый 29.10.2021, 21:19   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Да, только еще добавить код, который убирает сообщение об ошибке и возвращает true (по аналогии с другими функциями проверки).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.10.2021, 21:39   #7
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию все равно почему-то не срабатывает

вот код,подскажите где ошибка
Код:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <style>
      body {
        background-color:aqua;
      }
      table {
        margin: 20px auto;
        background: #eeeeee;
        padding: 5px;
        border: 1px #777777 solid;
      }
      .vld {
        background: #eeeeee;
        border: 0px;
      }
      .zorka,
      .vld {
        color: red;
      }
    </style>
    <script>
      const allUsers = [];
      
      function textValid(txt, objMessage) {
        if (txt == '') {
          objMessage.value = 'Поле не заповнене';
          return false;
        }
        objMessage.value = '';
        return true;
      }
     
      function OrganizationValid(org,objMessage){
        if(org==""){
          objMessage.value = 'Поле не заповнене';
        return false;
        }
        var org1 = /^[a-zA-Zа-яА-я_\-. ]*$/;
        if (!org1.test(org))
        {
          objMessage.value = 'Неправильно введена організація';
          return false;
        } else {
          objMessage.value = '';
          return objMessage;
        }
      }
      function adrsaitaValid(sayt,objMessage){
        if (sayt=="")
        {
          objMessage.value  = "Поле не заполнено";
        return false;
        }
        var say =/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/;
        if (!say.test(sayt))
        {
          objMessage.value  = "Неправильно введен адрес";
        return false;
        }
        else    
        {
          objMessage.value  ='';
        return true;
        }
    }
     function pochtadValid(adress,objMessage){
        if (adress=="")
        {
          objMessage.value  = "Поле не заполнено";
        return false;
        }
        var poc =/[а-яА-Я0-9_\-. ,]$/;
        if (!poc.test(adress))
        {
          objMessage.value  = "Неправильно введен адрес";
        return false;
        }
        else    
        {
          objMessage.value  ='';
        return true;
        }
    }
    
    
      function TelefonValid(telefon,objMessage){
        if (telefon=="")
        {
          objMessage.value = 'Поле не заповнене';
        return false;
        }
        var tel = /^[0-9]+$/;
        if (!tel.test(telefon))
        {
          objMessage.value  = "Неправильно введен мобильный телефон";
        return false;
        }
        else    
        {
          objMessage.value ='';
        return telefon;
        }
    }
     function emailValid(email, objMessage) {
        if (email == '') {
          objMessage.value = 'Поле не заповнене';
          return false;
        }
        var lg1 =/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/;
        if (!lg1.test(email)) {
          objMessage.value = 'Неправильний логін';
          return false;
        } else {
          objMessage.value = '';
          return email;
        }
      }
      function knopkaValid(knopka, objMessage) {
        if (knopka == '') {
          objMessage.value = 'Поле не заповнене';
          return false;
        }else
          objMessage.value =' ';
        return true;
        }
      function submitForm(event, myForm) {
        event.preventDefault();
 
        var name = textValid(myForm.elements.ima.value, myForm.elements.vIma);
        var lastName = textValid( myForm.elements.family.value, myForm.elements.vFam);
        var org = OrganizationValid( myForm.elements.org.value, myForm.elements.vorg);
        var sayt=adrsaitaValid(myForm.elements.sayt.value,myForm.elements.vsay);
        var adrs=pochtadValid(myForm.elements.adr.value,myForm.elements.vadr);
        var tel=TelefonValid(myForm.elements.tel.value,myForm.elements.vtel);
        var email = emailValid( myForm.elements.email.value, myForm.elements.vema );
        var knopka=knopkaValid(myForm.elements.knopka.value,myForm.elements.vkno);
        if (name && lastName &&org && sayt&&adrs&& tel&&email&&knopka) {
          const user = allUsers.find(user => user.tel === tel,user => user.email === email);
          if (user) {
            return alert('Користувач з таким ном.телефону і поштою вже зареєстрований');
          } else {
            allUsers.push({ name, lastName, org,sayt,adrs, tel,email,knopka});
            return alert(
              'Користувач з телефоном '+' ' + tel + ' '+' і ел.поштою'+' '+email+ ' був успішно зареєстрований.'
            );
          }
         
        }
      }
    </script>
  </head>
  <body>
    <table>
      <tr>
        <td colspan="3" align="center">
          <h3>Реєстраційна форма</h3>
        </td>
      </tr>
      <form name="myForm" onsubmit="return submitForm(event, this)">
     
        <tr>
          <td>Ім'я<span class="zorka">*</span></td>
          <td><input type="text" name="ima" maxlength="16" /></td>
          <td><input type="text" class="vld" name="vIma" readonly /></td>
        </tr>
        <tr>
          <td>Прізвище<span class="zorka">*</span></td>
          <td><input type="text" name="family" maxlength="16" /></td>
          <td><input type="text" class="vld" name="vFam" readonly /></td>
        </tr>
        <tr>
          <tr><td>Организация<span class="zorka">*</span></td>
            <td><input type="text" name="org" maxlength = "50" ></td>
          
            <td><input type="text" class="vld" name="vorg" readonly ></td>
          </tr>
          <tr>
          <tr><td>Сайт пользователя<span class="zorka">*</span></td>
            <td><input type="text" name="sayt" maxlength = "50"></td>
            <td><input type="text" class="vld" name="vsay" readonly ></td>
          </tr>    
         
        <tr>
          <td>Почтовый адресс<span class="zorka">*</span></td><td>
            <input type="text" name="adr" maxlength = "500"></td><td>
              <input type="text" class="vld" name="vadr" readonly ></td>
        </tr>
        <tr>
          <td>Мобильный телефон<span class="zorka">*</span></td><td>
            <input type="text" name="tel" maxlength = "24"></td><td>
            <input type="text" class="vld" name="vtel" readonly ></td>    
        </tr>
        <tr>
            <td>Email<span class="zorka">*</span></td>
            <td><input type="text" name="email" maxlength="30" /></td>
            <td><input type="text" class="vld" name="vema" readonly /></td>
          </tr>
          <tr>
            <td>Обиріть ваш вид відвідування<span class="zorka">*</span></td><td>
            <input type="Radio"  name="knopka"><span>Заочное</span></td>
            <td><input type="text" class="vld" name="vkno" readonly /></td>
            </tr>
          <td></td>
          <td colspan="2">
            <input type="submit" value="Зареєструватися">
          </td>
        </tr>
      </form>
    </table>
  </body>
</html>
nonameii3ii вне форума Ответить с цитированием
Старый 30.10.2021, 00:40   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Два пути решения:
1) Сделать 2 радиокнопки и добавить каждой value.
2) Вместо радио использовать чекбокс и проверять checked (но тогда не нужно печатать сообщение, что пользователь не заполнил поле).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 30.10.2021 в 00:44.
BDA вне форума Ответить с цитированием
Старый 31.10.2021, 20:07   #9
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию

Можете подсказать как проверить две кнопки на состояние checked
nonameii3ii вне форума Ответить с цитированием
Старый 31.10.2021, 21:50   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

По вашему вопросу не понял, по какому именно пути вы пошли. У вас два независимых чекбокса или две связные радиокнопки?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать нажата ли кнопка(Button) в чужом приложении? progan Win Api 7 13.01.2011 09:08
Как узнать нажата ли кнопка? Ragnarek45 Общие вопросы Delphi 11 07.12.2010 14:53
как узнать, нажата ли кнопка мыши? Juffin Общие вопросы Delphi 1 20.05.2010 20:16
Как узнать была ли нажата кнопка? SanSanblch Win Api 3 20.12.2009 01:15