2012-03-14 3 views
1

новичок здесь. Мне нужна помощь.Проверка Javascript со значением по умолчанию

Я использую предварительно написанный валидатор формы для моего веб-сайта, но дело в том, что оно не предназначено для полей с значением по умолчанию. Таким образом, проблема заключается в том, что валидатор рассматривает значение «Имя» и «Сообщение» как действительное, и сообщение проходит без какого-либо сообщения об ошибке.

Я сделал некоторые исследования и увидел некоторые предложения, но с очень небольшим знанием в javascript, я не знаю, как их реализовать или как создать другой набор правил проверки.

Кстати я использую бесплатную форму контакта с [http://www.faridhadi.com/][1]

Ниже приведен сценарий, я работаю над:

Я надеюсь, что вы, ребята, может помочь мне! Благодаря!

// JavaScript Document 

$(document).ready(function() { 

    $('#contactForm #submit').click(function() { 
     // Fade in the progress bar 
     $('#contactForm #formProgress').hide(); 
     $('#contactForm #formProgress').html('<img src="images/ajax-loader.gif" /> Sending&hellip;'); 
     $('#contactForm #formProgress').fadeIn(); 

     // Disable the submit button 
     $('#contactForm #submit').attr("disabled", "disabled"); 

     // Clear and hide any error messages 
     $('#contactForm .formError').html(''); 

     // Set temaprary variables for the script 
     var isFocus=0; 
     var isError=0; 

     // Get the data from the form 
     var name=$('#contactForm #name').val(); 
     var email=$('#contactForm #email').val(); 
     var subject=$('#contactForm #subject').val(); 
     var message=$('#contactForm #message').val(); 

     // Validate the data 
     if(name=='') { 
      $('#contactForm #errorName').html('This is a required field.'); 
      $('#contactForm #name').focus(); 
      isFocus=1; 
      isError=1; 
     } 
     if(email=='') { 
      $('#contactForm #errorEmail').html('This is a required field.'); 
      if(isFocus==0) { 
       $('#contactForm #email').focus(); 
       isFocus=1; 
      } 
      isError=1; 
     } else { 
      var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
      if(reg.test(email)==false) { 
       $('#contactForm #errorEmail').html('Invalid email address.'); 
       if(isFocus==0) { 
        $('#contactForm #email').focus(); 
        isFocus=1; 
       } 
       isError=1; 
      } 
     } 
     if(message=='') { 
      $('#contactForm #errorMessage').html('This is a required field.'); 
      if(isFocus==0) { 
       $('#contactForm #message').focus(); 
       isFocus=1; 
      } 
      isError=1; 
     } 

     // Terminate the script if an error is found 
     if(isError==1) { 
      $('#contactForm #formProgress').html(''); 
      $('#contactForm #formProgress').hide(); 

      // Activate the submit button 
      $('#contactForm #submit').attr("disabled", ""); 

      return false; 
     } 

     $.ajaxSetup ({ 
      cache: false 
     }); 

     var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&message=' + message; 
     $.ajax({ 
      type: "POST", 
      url: "php/submit-form-ajax.php", 
      data: dataString, 
      success: function(msg) { 

       //alert(msg); 

       // Check to see if the mail was successfully sent 
       if(msg=='Mail sent') { 
        // Update the progress bar 
        $('#contactForm #formProgress').html('<img src="images/ajax-complete.gif" /> Message sent.').delay(2000).fadeOut(400); 

        // Clear the subject field and message textbox 
        $('#contactForm #subject').val(''); 
        $('#contactForm #message').val(''); 
       } else { 
        $('#contactForm #formProgress').html(''); 
        alert('There was an error sending your email. Please try again.'); 
       } 

       // Activate the submit button 
       $('#contactForm #submit').attr("disabled", ""); 
      }, 
      error: function(ob,errStr) { 
       $('#contactForm #formProgress').html(''); 
       alert('There was an error sending your email. Please try again.'); 

       // Activate the submit button 
       $('#contactForm #submit').attr("disabled", ""); 
      } 
     }); 

     return false; 
    }); 
}); 

ответ

0

Лучше использовать HTML5 placeholder атрибут для "значения по умолчанию". Для поддержки всех браузеров вы можете использовать плагин jQuery watermark, который заполняет старый браузер для поддержки placeholder.

Для проверки также лучше использовать широко используется jQuery Validator плагин

0

Если по умолчанию вы имеете в виду начальный value="No Subject" вы можете изменить назначение переменных для учета этого значения, если вход пуст;

var name = $('#contactForm #name'); 
name = $.trim(name.val()) || name.prop("defaultValue"); 
... 
var email = .... 
Смежные вопросы