2015-03-13 2 views
0

Я пытаюсь предотвратить отправку формы, если валидация не удалась, однако ее не работает в данный момент. Метод onclick используется для скрытого ввода, но его метод onsubmit, который терпит неудачу. Есть идеи?Проверка Javascript/PHP

 <input type="submit" class="btn ccm-input-submit" id="register" name="register" value="Register" onsubmit="return validation(this)" onclick="copytextbox()"/> 
     <?php echo $form->hidden('rcID', $rcID); ?> 

<script> 
function copytextbox() 
{ 
    var textToCopy = document.getElementById('school').value; 
    var whereToCopy = document.getElementById('<?php echo $school ?>'); 
    whereToCopy.value += textToCopy; 
} 

function validation(f) 
{ 
    var schoolText = document.getElementById('school').value; 
    if (schoolText == '') { 
     alert('Please Choose a value from the dropdown box.'); 
     return false; // stop submission until textbox is not '' 
    } else { 
     f.submit(); 
     return false; 
    } 
} 
</script> 

Кроме того, им пытаются увидеть, если это значение является членом массива, я попытался с помощью IndexOf (schoolText) и т.д., но это также не удалось, вроде считает

+0

для использования передней walidation J [query.validate] (https://github.com/DiegoLopesLima/Validate#readme), для использования проверки PHP [Респект/Оценка ] (https://github.com/Respect/Validation) – walkingRed

+0

помните, что хакер может легко обойти проверку в браузере. – hanshenrik

ответ

3

Переместите атрибут onsubmit="return validation(this)" из <input> тега к тегу <form>.

Тест массив как это:

// global array 
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 

function findFruit(val) { 
    if(fruits.indexOf(val) == -1 { 
    alert('not found'); 
    } else { 
    alert('Found!') 
    } 
} 
findFruit('Peach'); // not found 
+0

Короткий и сладкий спасибо, любые идеи о том, как проверить, является ли значение частью массива? – Frog82

+0

Обновлен мой ответ на вопрос Array. – wwwmarty

+0

Спасибо за помощь! – Frog82

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