2013-09-28 2 views
2

Я хочу скрыть кнопку «отправить» моей формы, когда форма отправлена ​​успешно. Я попытался добавить $('#submit').hide(2000); сразу после $('.success').fadeIn(1000); но без успеха. БлагодаряКак скрыть кнопку «отправить» после успешной отправки формы?

HTML:

<div class="block-right"> <h1>Formulaire de contact</h1> 
      <!-- CONTACT FORM--> 
      <div class="contact-form"> 


       <form id="contactfrm" method="post" class="clearfix"> 
        <div class="clearfix"> 
         <input id="name" name="name" placeholder="Name" type="text" value=""> 
         <input id="email" name="email" placeholder="Email" type="email" value=""> 
        </div> 

        <textarea id="message" name="message" placeholder="Message"></textarea> 

        <input type="submit" value="Envoyer" name="submit"> 

    <p class="success" style="display:none">Your message has been sent successfully.</p> 
    <p class="error" style="display:none">E-mail must be valid and message must be longer than 100 characters.</p> 
       </form> 
      </div><!-- /.contact-form --> 
</div> <!-- End DIV block-right --> 

JS:

// Contact Form 
$(document).ready(function(){ 
    $("#contactfrm").submit(function(e){ 
    e.preventDefault(); 
    var name = $("#name").val(); 
    var email = $("#email").val(); 
    var message = $("#message").val(); 
    var dataString = 'name=' + name + '&email=' + email + '&message=' + message; 
    function isValidEmail(emailAddress) { 
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
    return pattern.test(emailAddress); 
    }; 

    if (isValidEmail(email) && (message.length > 10) && (name.length > 1)){ 
    $.ajax({ 
    type: "POST", 
    url: "sendmessage.php", 
    data: dataString, 
    success: function(){ 
     $('.success').fadeIn(1000); 
    } 
    }); 
    } else{ 
    $('.error').fadeIn(1000); 
    } 

    return false; 
}); 
}); 

ответ

1

попробовать это:

success: function(){ 
      $('.success').fadeIn(1000); 
     $('input[name="submit"]').hide(); 
    } 

Но я советую вам изменить HTML из ваших представить следующим образом:

<input type="submit" value="Envoyer" name="submit" id="submit"> 

и использовать этот код, таким образом, вы можете скрыть только представить вашей формы:

success: function(){ 
          $('.success').fadeIn(1000); 
      $('#submit').hide(); 
        } 
+0

Это скроет все кнопки отправки на странице. –

1

Когда Аякса функция успеха обжигают скрыть кнопку.

$this.find('input:submit').hide(); 

Вы код становится

$(document).ready(function() { 
    $("#contactfrm").submit(function (e) { 
     var $this =$(this);//added this code here 
     e.preventDefault(); 
     var name = $("#name").val(); 
     var email = $("#email").val(); 
     var message = $("#message").val(); 
     var dataString = 'name=' + name + '&email=' + email + '&message=' + message; 

     function isValidEmail(emailAddress) { 
      var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
      return pattern.test(emailAddress); 
     }; 

     if (isValidEmail(email) && (message.length > 10) && (name.length > 1)) { 
      $.ajax({ 
       type: "POST", 
       url: "sendmessage.php", 
       data: dataString, 
       success: function() { 
        $('.success').fadeIn(1000); 
        $this.find('input:submit').hide();//added this code here 
       } 
      }); 
     } else { 
      $('.error').fadeIn(1000); 
     } 

     return false; 
    }); 
}); 

Ссылки

http://api.jquery.com/hide/

http://api.jquery.com/find/

1

Изменение

<input type="submit" value="Envoyer" name="submit"> 

в

<input type="submit" value="Envoyer" id="submit" name="submit"> 
Смежные вопросы