2013-08-08 6 views
1

Я только начал изучать JS, как 5-10 минут назад, мне сказали, чтобы кто-то попытался создать базовую функцию проверки, однако, похоже, она работает не так, как хотелось бы. Он проверяет, пусто ли поле, эта часть работает. Но, проверяя, есть ли у него что-то, и продолжать выполнять код, нет.Почему мое возвращение не работает?

моя форма:

echo '<form action="index.php?action=getHashedText" method="post"  name="formHash"> 
     <br/><textarea name="text" rows="4" cols="50" placeholder="Add your text/pharse/word which you want hashing here." autofocus></textarea><br/> 
     <button type="button" name="button" onclick="return validate();">Hash</button>'; 

функция Validate():

<script> 
    function validate() { 
     with (window.document.formHash) { 
      if (formHash.text.value === "") { 
        alert('Field is empty!'); 
        return false; 
      } else { 
        return true; 
      }  
     } 
    } 
    </script> 
+3

Вы * действительно * не должны использовать ['with() {}'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/отчеты/с). Если вы просто учитесь, вы должны научиться правильному пути: -P –

ответ

4

Проблемы вы используете кнопки, не представившее форму в любом случае (независимо от вашего JS), изменить дом:

<button type="button" name="button" onclick="return validate();">Hash</button> 

Для этого: Fiddle

<input type="submit" name="button" value="Hash" onclick="return validate();" /> 

Или вы можете просто добавить type="submit" на вашем <button> (HT @RocketHazmat): Fiddle

<button type="submit" name="button" onclick="return validate();">Hash</button> 

Или вы можете просто удалить type на вашем <button> все вместе, как по умолчанию type является submit (HT @ FabrícioMatté): Fiddle

<button name="button" onclick="return validate();">Hash</button> 

Кроме того, немного не по теме, но я хотел бы получить в привычку избегать положить JavaScript onclicks прямо на ваших элементов. Вы можете создавать вместо этого слушателей: addEventListener

+1

Darn it! Я только что опубликовал тот же ответ. Вы избили меня на 8 секунд! –

+0

Случается ко мне все время: P – smerny

+2

Вы * можете * сделать '

Смежные вопросы