2015-09-07 4 views
1

HTMLФорма проверки с JS не работает

<form name="suggestion" method="post" action="suggestion.php"    
    class="elegant-aero" onSubmit="return validate()" >     
    <label> 
    <span>Message :</span> 
    <textarea id="Message" name="message" placeholder="Your Message to Us"></textarea> 
    </label> 
    <input type="submit" class="buttonc" value="SEND" onclick="validate()"> 
</form> 

JavaScript

function validate() { 
    var message = document.suggestion.message.value; 
    if (message == "") { 
     alert("Message box should not be leaved empty"); 
     return false; 
    } else { 
     return true; 
    } 
} 

Я делаю что-то не так? Моя функция проверки не работает. Пожалуйста, дайте мне некоторое предложение.

+0

Для чего вход происходит? И что должно произойти вместо этого? – Raffaele

+0

Кроме того, почему вы вызываете validate() как onclick, так и onsubmit? – Raffaele

ответ

0

Чтобы получить доступ к форме по имени, Вы должны сделать это:

var message = document.forms["suggestion"].elements["message"].value; 

Но лучше сделать это с ID.


НО

самый простой способ сделать то, что вы хотите, чтобы установить необходимый атрибут в <textarea>

<textarea required> 
0

Я думаю, что основная ошибка заключается в том, что document.suggestion.message.value не является допустимым селектором из моего понимания. Попробуйте getElementById, чтобы получить выбранную форму.

+0

Это работает в моем браузере – Raffaele

+0

Это действительный селектор, который мы можем сделать при работе с формами – sony

0

код хорошо, но вы должны правильно разместить скрипт в документ

Оставить заявку http://jsfiddle.net/wLrg26s0/4/ На левой стороне jsbin выбран no wrap - in <body> его означает, что код выглядеть

<body> 
    <!-- page --> 
    <script> 
     //js here 
    </script> 
<body> 

Функции объявить этот путь пойти window пространства имен. Его глобальное пространство имен, и там onSubmit поиск validate функция.

При выборе на левую сторону jsbin onLoad затем код выглядит следующим образом (и не забудьте нажать бежать)

<script> 
     $(document).ready(function() { 
     //js here 
     }); 
    </script> 

И сценарий не работает, потому что функция объявлена ​​где-то в другом месте. Чтобы исправить это, вы должны объявить функцию таким образом

window.validate = function(){ /*code */} 
+0

, я сделал, выбрав onLoad, но скрипт отлично работает для этого – sony

+0

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