2013-02-28 52 views
0

我在嘗試更新以前創建的表格以使用新字段。目前只有電子郵件正在驗證,如果您單擊發送,它只會顯示電子郵件字段爲空(將邊框變爲紅色)。極簡表格無法驗證

js代碼錯誤代碼位於here

我假設我忽略了一個顯而易見的明顯錯誤。

HTML:

   <div class="success"> Contact form submitted!<br> <strong>We will be in touch soon.</strong></div> 
       <form id="form-1" class="form-1" name="form-1" method="post" action="index.html" enctype="multipart/form-data"> 
        <input class="inputbox" name="name" id="name" type="text" value="Your Name:" onFocus="if(this.value=='Your Name:'){this.value=''}" onBlur="if(this.value==''){this.value='Your Name:'}" /> 
        <input class="inputbox top-2" name="email" id="email" type="text" value="E-mail:" onFocus="if(this.value=='E-mail:'){this.value=''}" onBlur="if(this.value==''){this.value='E-mail:'}" /> 
        <input class="inputbox top-2" name="phone" id="phone" type="text" value="Phone:" onFocus="if(this.value=='Phone:'){this.value=''}" onBlur="if(this.value==''){this.value='Phone:'}" /> 
        <div class="select-3 top-2 fleft"> 
         <select name="select" name="adults" id="adults" > 
          <option selected disabled>Adults</option> 
          <option value="1">1</option> 
          <option value="2">2</option> 
          <option value="3">3</option> 
          <option value="4">4</option> 
          <option value="5">5</option> 
          <option value="6">6</option> 
          <option value="7">7</option> 
          <option value="8">8</option> 
          <option value="9+">9+</option> 
         </select> 
        </div> 
        <div class="select-3 top-2 fleft"> 
         <select name="select" name="children" id="children" > 
          <option selected disabled>Children</option> 
          <option value="1">1</option> 
          <option value="2">2</option> 
          <option value="3">3</option> 
          <option value="4">4</option> 
          <option value="5">5</option> 
          <option value="6">6</option> 
          <option value="7">7</option> 
          <option value="8">8</option> 
          <option value="9+">9+</option> 
         </select> 
        </div> 
        <div class="select-3 top-2 fleft last-1"> 
         <select name="select" name="rooms" id="rooms" > 
          <option selected disabled>Rooms</option> 
          <option value="1">1</option> 
          <option value="2">2</option> 
          <option value="3">3</option> 
          <option value="4">4</option> 
          <option value="5">5</option> 
          <option value="6">6</option> 
          <option value="7">7</option> 
          <option value="8">8</option> 
          <option value="9+">9+</option> 
         </select> 
        </div> 
        <div class="select-2 top-2 fleft"> 
         <input class="inputbox_date" name="checkin" id="checkin" value="Check-In Date:" onFocus="if(this.value=='Check-In Date:'){this.value=''}" onBlur="if(this.value==''){this.value='Check-In Date:'}" /> 
         <input class="inputbox_date" name="checkout" id="checkout" value="Check-Out Date:" onFocus="if(this.value=='Check-Out Date:'){this.value=''}" onBlur="if(this.value==''){this.value='Check-Out Date:'}" /> 
        </div> 
        <div class="clear"></div> 
        <div class="height-3 border-2 pad-2"> 
         <textarea class="textarea top-2" name="comments" id="comments" onFocus="if(this.value=='ADDITIONAL COMMENTS:'){this.value=''}" onBlur="if(this.value==''){this.value='ADDITIONAL COMMENTS:'}">ADDITIONAL COMMENTS:</textarea> 
        </div> 
        <p class="center"><a href="javascript:void(0);" name="submitlink" id="submitlink" class="button top-1">Send</a></p> 
        <div class="clear"></div> 
       </form> 

JS:

function checkValidEmailAddress(emailAddress) { 
    var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i); 

    return pattern.test(emailAddress); 
}; 

var mailsendstatus; 
function userSendMailStatus(uname, uemail, uphone, uadults, uchildren, urooms, ucheckin, ucheckout, umsg) { 
    // checking for some valid user name 
    if(!uname) { 
     $("#name").addClass('formError'); 
    } 
    else if (uname){ 
     $("#name").removeClass('formError');  
    } 

    // checking for valid email 
    if(!checkValidEmailAddress(uemail)) { 
     $("#email").addClass('formError'); 
    } 
    else if(checkValidEmailAddress(uemail)) { 
     $("#email").removeClass('formError'); 
    } 

    // checking for phone 
    if(!uphone) { 
     $("#phone").addClass('formError'); 
    } 
    else if (uphone) { 
     $("#phone").removeClass('formError'); 
    } 

    // checking for checkin 
    if(!ucheckin){ 
     $("#checkin").addClass('formError'); 
    } 
    else if(ucheckin){ 
     $("#checkin").removeClass('formError'); 
    } 

    // checking for checkout 
    if(!ucheckout) { 
     $("#checkout").addClass('formError'); 
    } 
    else if(!ucheckout){ 
     $("#checkout").removeClass('formError');  
    } 


    if(uname && checkValidEmailAddress(uemail) && uphone && ucheckin && ucheckout) { 
     // in this case all of our inputs look good 
     // so we say true and send the mail 
     mailsendstatus = true; 

     $.ajax(
      { 
       type: 'POST', 
       url: 'js/sendmail.php', 
       data: $("#form-1").serialize(), 
       success: function(data) { 
        if(data == "yes") { 
        $(".success").toggle(); 
        $("#form-1").slideUp(650); 
        } 
       } 
      } 
    )}; 

    return mailsendstatus; 
} 

$(document).ready(function(){ 
    $("#form-1").submit(function() { return false; }); 

    $("#submitlink").bind("click", function(e){ 
     var subnamevalue = $("#name").val(); 
     var emailvalue = $("#email").val(); 
     var phonevalue = $("#phone").val(); 
     var adultsvalue = $("#adults").val(); 
     var childrenvalue = $("#children").val(); 
     var roomsvalue = $("#rooms").val(); 
     var checkinvalue = $("#checkin").val(); 
     var checkoutvalue = $("#checkout").val(); 
     var msgvalue  = $("#comments").val(); 


     var postchecks = userSendMailStatus(subnamevalue, emailvalue, phonevalue, adultsvalue, childrenvalue, roomsvalue, checkinvalue, checkoutvalue, msgvalue); 
    }); 
}); 
+0

當您的函數運行以檢查它們是否爲空時,它會看到您的佔位符文本。沒有一個字段實際上是空白/空白的。該電子郵件的作品,因爲您還檢查它是否是一個有效的電子郵件地址 – Jrod 2013-02-28 21:57:56

+0

這就是爲什麼我需要新鮮眼睛!嘿。隨意使用它作爲答案,以便我可以接受它。 – 2013-02-28 22:03:29

回答

0

當你的函數運行,以檢查它們是否爲空就可以看到您的佔位符的文本。沒有一個字段實際上是空白/空白的。該電子郵件的作品,因爲您還檢查它是否是一個有效的電子郵件地址