2012-03-14 136 views
1

新手在这里。我需要一些帮助。默认字段值的Javascript验证

我正在为我的网站使用预先编写的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 = ....