2013-05-26 5 views
3

Я пытаюсь сделать форму проверки, чтобы проверить форму запроса информации, проверяя, что следующие поля формы были заполнены:Проблемы с JavaScript Form Validation

▪ поле Имя
▪ поле Email
▪ Комментарии

Моя функция validateName() не работает вообще, это заставляет другие функции не работать (добавление значений по умолчанию в поля и удаление значений по умолчанию при щелчке по текстовой области). Когда я удаляю validateName(), функции, которые я ранее создал, работают нормально. Следует отметить, что я добавил onsubmit = "return validateName()" в элемент формы. Мне также нужно будет создать validateEmail() и validateComments() соответственно.

Я хотел бы также функции для validateName(), validateEmail(), и validateComments() проверки, чтобы проверить следующее:

▪ Проверьте, если поле формы пусто при представлении ▪ Проверьте, если текст по умолчанию находится в поле формы, когда отправлено

Я прокомментировал 2 функции validateName(), которые я попытался использовать, чтобы мои другие функции работали.

function formtext(){ 
     document.contact.Name.value="Enter your name."; 
     document.contact.Email.value="Enter your email address."; 
     document.contact.questions.value="Enter your comments."; 
    } 
    function delete_email(){ 
     document.contact.Email.value = ""; 
    } 
    function delete_name(){ 
     document.contact.Name.value = ""; 
    } 
    function delete_comments(){ 
     document.contact.questions.value = ""; 
    } 

    /* function validateName() 
    { 
     var x=document.contact.Name.value; 
     if (x==null || x=="") 

     { 
      alert("Name must be filled out"); 
      return false; 
     } 
    } */ 

    /* function validateName() 
    { 
     var x=document.contact.["Name"].value; 
     if (x==null || x=="") 
     { 
      alert("Name must be filled out"); 
      return false; 
     } 
    } */ 

</script> 
+0

насчет ** ** JQuery, почему бы не использовать его? –

+0

Попробуйте присвоить атрибут 'id' для каждого из полей и использовать' if (document.getElementById ('nameField'). Value == '') ' Я попробую создать скрипку и разместите здесь ссылку –

+0

Спасибо большое harsha, я попробую. – aplata

ответ

2
var defaultName == 'Please Enter Name', defaultEmail == 'Please Enter Email', defaultComment == 'Please Enter Comment'; 
function validateForm() 
    { 
     if(document.getElementById('namefield').value == '' || (document.getElementById('namefield').value == defaultName) 
     { 
      alert('Please enter name'); 
     } 
     if(document.getElementById('emailfield').value == '' || (document.getElementById('emailfield').value == defaultEmail) 
     { 
      alert('Please enter email');  
     } 
     if(document.getElementById('commentsfield').value == '' || (document.getElementById('commentsfield').value == defaultComment) 
     { 
      alert('Please enter comments'); 
     } 
    } 
+0

Прошу прощения. Копирование вставки из Dreamweaver удаляет все форматирование –

+0

Я думаю о требовании «Проверьте, текст по умолчанию находится в поле формы при отправке «Я мог бы добавить условие или разрешить после значения ==, но как я могу ссылаться на текст? Он существует внутри моей функции ниже, поэтому я думаю, что мне нужно будет создать переменную. Есть идеи? function formtext() {document.contact.Name.value = "Введите свое имя."; document.contact.Email.value = "Введите свой адрес электронной почты."; document.contact.questions.value = "Введите свои комментарии."; } – aplata

+0

@aplata: Определите переменные в JavaScript изначально как «var defaultName =» Введите ваше имя здесь ». Затем вы можете выполнить проверку как 'if (document.getElementById ('nameField'). Value == '' || document.getElementById ('nameField'). Value == defaultName)' –