2016-04-30 2 views
0

Не знаю, что я делаю неправильно, но im, если пункт назначения пуст, он должен принести предупреждение, а если он не отправлен, не следует.Если текстовое поле пустое не работает

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

<html lang="en"> 
<head> 
<script type="text/javascript"> 
    function CheckFormPrac(form){ 

     var pcheck = document.getElementById("phone").value; 
     pattern = /^^02\d{8}$/; 

     if (!pattern.test(pcheck)) { 
      alert("Please input your number in format of 02########."); 
      return false; 
     } else { 
      return true; 
     } 

     var cdest = document.getElementById("dest").value; 
     if (cdest == ""){ 
      alert("Destination has not been filled."); 
      return false; 
     } else { 
      return true; 
     } 

    } 
</script> 
</head> 
<body> 
<form id="ffform" method="get" action="" 
Onsubmit="return CheckFormPrac(this);" > 
<fieldset> 
     Home Phone: 
    <input type="text" name="phone" id="phone" size=15 onblur="CheckFormPrac(this);" /> <br/> 

    What is your favorite destination to fly to? 
    <input type="text" name="dest" id="dest" size=30 onblur="CheckFormPrac(this);"/> <br/> 
    <input type="submit" value="Submit" /> 
    <input type="reset" value="Reset"/> 
</form> 

ответ

0

Проблема заключается в том, что код, который проверяет наличие значения #dest никогда не достигается.

if(!pattern.test(pcheck)) { 
    alert("Please input your number in format of 02########."); 
    return false; 
} else { 
    return true; 
} 

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

Обратите внимание, что от обработчика события не требуется return true;, так как это действие по умолчанию для формы.

Вот полный код с некоторыми изменениями:

function CheckFormPrac() { 
    var pcheck = document.getElementById("phone").value; 
    if(!/^02\d{8}$/.test(pcheck)) { 
     alert("Please input your number in format of 02########."); 
     return false; 
    } 

    if(document.getElementById("dest").value.trim() === "") { 
     alert("Destination has not been filled."); 
     return false; 
    } 
} 
+0

Спасибо за что, я удалил как возвращение истинного; как вы сказали, это действие по умолчанию обработчика события. :) И это сработало после того, как я положил id = "dest" на вход :) спасибо – josh

0

У вас есть какая-то ошибка в форме, а также, как вы вызываете ваш onsubmit. Кроме того, вы можете сделать это (минус предупреждения) без яваскрипта

https://jsfiddle.net/stevenkaspar/uoLrsz78/

<form method="get" action="/"> 
    Home Phone: 
    <input type="text" name="phone" pattern='(02)[0-9]{8}' required/> <br/> 

    What is your favorite destination to fly to? 
    <input type="text" name="dest" required/> <br/> 
    <input type="submit" value="Submit" /> 
    <input type="reset" value="Reset"/> 
</form> 
Смежные вопросы