Вернуть true или false не работает в JavaScript - PullRequest
2 голосов
/ 04 февраля 2011

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

Вот код JavaScript:

var postalconfig = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;

function outer(){
    function checkpostal(postal_code){
      if (postalconfig.test(document.myform.postal_code.value)) {
        alert("VALID SSN");
        return true;
      } else {
        alert("INVALID SSN");
        return false;
      }
    }
  checkpostal();
}

И HTML:

<form name="myform" action="index.php" onSubmit="return outer();" method="post">
    Postal Code <input name="postal_code"  type="text" />
    <input name="Submit" type="submit"  value="Submit Form" >
</form>

Ответы [ 4 ]

7 голосов
/ 04 февраля 2011

Изменить checkpostal(); на return checkpostal();

как это:

var postalconfig = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;

function outer(){   

  function checkpostal(postal_code) {
    if (postalconfig.test(document.myform.postal_code.value)) {
      alert("VALID SSN");
      return true;
    } else {
      alert("INVALID SSN");
      return false;
    }
  }

  return checkpostal();

}
4 голосов
/ 04 февраля 2011

Проблема здесь в том, что вы получаете возвращаемое значение outer, но outer ничего не возвращает.return true (или false) влияет только на текущую функцию, в этом случае checkpostal.

Вам необходимо получить outer, чтобы вернуть возвращаемое значение checkpostal:

function outer() {
    function checkpostal(postal_code) {
        if (postalconfig.test(document.myform.postal_code.value)) {
            alert("VALID SSN");
            return true;
        } else {
            alert("INVALID SSN");
            return false;
        }
    }

    return checkpostal();
}
3 голосов
/ 04 февраля 2011

Похоже, что в конце outer() это должно быть

return checkpostal();

, а не просто

checkpostal();

Звонок на checkpostal() может вернуться правильно, но выиграть после отправкирезультат не получается, поскольку outer() ничего не возвращает.

1 голос
/ 04 февраля 2011

Вы хотите перезвонить на контрольный пост:

function outer(){   

    function checkpostal(postal_code){
 if (postalconfig.test(document.myform.postal_code.value)) {
  alert("VALID SSN");
  return true;
 } else {
  alert("INVALID SSN");
  return false;
 }
}

return checkpostal();

}
...