контроль формы не фокусируется - PullRequest
0 голосов
/ 02 мая 2020

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

Самый простой способ проверить фрагмент:

  1. Оставьте первое и последнее имя пустым
  2. Введите одно письмо для адреса электронной почты
  3. НАЖМИТЕ В СЛЕДУЮЩЕМ
  4. НАЖМИТЕ НА ПРЕДПРИЯТИЕ
  5. ПРОВЕРИТЬ КОНСОЛЬ ДЛЯ СООБЩЕНИЯ ОБ ОШИБКАХ

Этот ответ на стекопоток не фокусируется Не отвечает на вопрос. Ввод электронной почты не имеет «ТРЕБУЕМЫЙ», и все кнопки имеют тип = «КНОПКУ», кроме отправки, но с ним связана функция щелчка.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://www.sustainablewestonma.org/swag/public/css/getInvolved001.css?test1=apple">
        <div id='container'>
            <div id='section-container'>
                <div id='section1' class='sections'>
                    <div id='section1b'>
                    <span class='majCap'>Get Involved</span>
                    <span class='minCap'>Enter your details below</span>
                    <form action='getInvolvedCtrl.php' method='POST' id='myForm' onsubmit="return mySubmit(event)">
                        <div class='columns'>
                            <input class='detailsC' type="text"  name="fname" placeholder="First Name" id='fname'>
                            <input class='detailsC' type="text"  name="lname" placeholder="Last Name"  id='lname'>
                            <input class='detailsC' type="email" name="email" placeholder="Email..."   id='email'>
                        </div>
                        <div class='rowsDet'>
                            <span class='detailsR'><input  type="checkbox" name="wres">Weston Resident</span>
                            <span class='detailsR'><input  type="checkbox" name="news">Quarterly Newsletter</span>
                        </div>
                        <div class='spacer'></div>
                        <span class="minCap" >Areas of Interests</span>
                        <div class='rowsInt'>
                            <div class="columns">
                                <span><input type="checkbox" name="energy-int">Energy</span>
                                <span><input type="checkbox" name="recycling-int">Recycling</span>
                                <span><input type="checkbox" name="composting-int">Composting</span>
                                <span><input type="checkbox" name="transport-int">Transportation</span>
                            </div>
                            <div class="columns">
                                <span><input type="checkbox" name="climate-int">Climate</span>
                                <span><input type="checkbox" name="trees-int">Trees</span>
                                <span><input type="checkbox" name="pollinators-int">Pollinators</span>
                                <span><input type="checkbox" name="water-int">Water</span>
                                <span><input type="checkbox" name="other-int">Other</span>
                            </div>
                        </div>
                        <button id='next' type='button' onclick="nextPage()">next</button>
                    </div>    
                <div id='section2' class='sections'>
                    <span class='minCap' >Current Campaign Information:</span>
                        <div class='rowsCam'>
                            <div class="columns">
                                <span><input type="checkbox" name="cleanup-cpg">Town Cleanup</span>
                                <span><input type="checkbox" name="pollinators-cpg">Pollinators</span>
                            </div>
                            <div class="columns">
                                <span><input type="checkbox" name="gas-cpg">Gas Leaks</span>
                                <span><input type="checkbox" name="cca-cpg">CCA</span>
                            </div>
                        </div>
                        <div class='spacer2'></div>
                            <input type="submit" value="SUBMIT">
                            <button id='back' type='button' onclick="backPage()">back</button>
                    </form>
                </div>
                    
                </div>
                
            </div>
        </div>
        <script>
           
        
            function nextPage(){
               
                var section1b = document.getElementById('section1b');
                section1b.style.display='none';
                var section2 = document.getElementById('section2');
                section2.style.display='block';
            }
            function backPage(){
                var section1b = document.getElementById('section1b');
                section1b.style.display='block';
                var section2 = document.getElementById('section2');
                section2.style.display='none';
            }
            function mySubmit(x){
                event.preventDefault();
                
                var fname = document.getElementById('fname').value;
                var lname = document.getElementById('lname').value;
                var email = document.getElementById('email').value;
                
                
                var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
                if(!email.match(mailformat))email="";
                
                if(fname == "" || lname == "" || email == ""){
                    alert("Please enter name and email");
                    backPage();
                    return false;
                }else{
                
                    //var myForm = document.getElementById('myForm');
                    //myForm.submit();
                    return true;
                }
            }
            
        </script>
    </body>
</html>

1 Ответ

1 голос
/ 02 мая 2020

Вы должны изменить только одну строку кода: -

Вы должны установить **<input type="text" />** вместо <input type="email" />

, поэтому обновленная строка будет: -

<input class='detailsC' type="text" name="email" placeholder="Email..."   id='email'>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://www.sustainablewestonma.org/swag/public/css/getInvolved001.css?test1=apple">
<div id='container'>
  <div id='section-container'>
    <div id='section1' class='sections'>
      <div id='section1b'>
        <span class='majCap'>Get Involved</span>
        <span class='minCap'>Enter your details below</span>
        <form action='getInvolvedCtrl.php' method='POST' id='myForm' onsubmit="return mySubmit(event)">
          <div class='columns'>
            <input class='detailsC' type="text" name="fname" placeholder="First Name" id='fname'>
            <input class='detailsC' type="text" name="lname" placeholder="Last Name" id='lname'>
            <input class='detailsC' type="text" name="email" placeholder="Email..." id='email'>
          </div>
          <div class='rowsDet'>
            <span class='detailsR'><input type="checkbox" name="wres">Weston Resident</span>
            <span class='detailsR'><input type="checkbox" name="news">Quarterly Newsletter</span>
          </div>
          <div class='spacer'></div>
          <span class="minCap">Areas of Interests</span>
          <div class='rowsInt'>
            <div class="columns">
              <span><input type="checkbox" name="energy-int">Energy</span>
              <span><input type="checkbox" name="recycling-int">Recycling</span>
              <span><input type="checkbox" name="composting-int">Composting</span>
              <span><input type="checkbox" name="transport-int">Transportation</span>
            </div>
            <div class="columns">
              <span><input type="checkbox" name="climate-int">Climate</span>
              <span><input type="checkbox" name="trees-int">Trees</span>
              <span><input type="checkbox" name="pollinators-int">Pollinators</span>
              <span><input type="checkbox" name="water-int">Water</span>
              <span><input type="checkbox" name="other-int">Other</span>
            </div>
          </div>
          <button id='next' type='button' onclick="nextPage()">next</button>
      </div>
      <div id='section2' class='sections'>
        <span class='minCap'>Current Campaign Information:</span>
        <div class='rowsCam'>
          <div class="columns">
            <span><input type="checkbox" name="cleanup-cpg">Town Cleanup</span>
            <span><input type="checkbox" name="pollinators-cpg">Pollinators</span>
          </div>
          <div class="columns">
            <span><input type="checkbox" name="gas-cpg">Gas Leaks</span>
            <span><input type="checkbox" name="cca-cpg">CCA</span>
          </div>
        </div>
        <div class='spacer2'></div>
        <input type="submit" value="SUBMIT">
        <button id='back' type='button' onclick="backPage()">back</button>
        </form>
      </div>

    </div>

  </div>
</div>
<script>
  function nextPage() {
    var section1b = document.getElementById('section1b');
    section1b.style.display = 'none';
    var section2 = document.getElementById('section2');
    section2.style.display = 'block';
  }

  function backPage() {
    var section1b = document.getElementById('section1b');
    section1b.style.display = 'block';
    var section2 = document.getElementById('section2');
    section2.style.display = 'none';
  }

  function mySubmit(x) {
    event.preventDefault();
    var fname = document.getElementById('fname').value;
    var lname = document.getElementById('lname').value;
    var email = document.getElementById('email').value;
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (!email.match(mailformat)) email = "";
    if (fname == "" || lname == "" || email == "") {
      alert("Please enter name and email");
      backPage();
      return false;
    } else {
      //var myForm = document.getElementById('myForm');
      //myForm.submit();
      return true;
    }
  }
</script>
</body>

</html>

также можете проверить мое решение здесь -

https://codepen.io/pen/?editors=1010

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...