2012-04-25 3 views
2

나는 HTML 양식을 가지고 PHP 스크립트에 게시 한 다음 양식 내용을 전자 메일로 보냈습니다. 페이지가 다시로드되지 않도록 javascript 폼 유효성 검사 및 일부 jquery ajax도 사용하고 있습니다.제출 후 HTML 양식을 숨기시겠습니까?

HTML -

<form action="mail.php" class="contactus" onsubmit="return ValidateRequiredFields();" name="contactus" method="POST"> 
<p class="floatleft" style="width:200px; background-color:#FF0000; line-height:50px; margin:0; padding:0;">Nameeeeee</p> <input class="sizetext" type="text" maxlength="10" name="name"> 
<div style="clear:both"></div> 
<p class="floatleft" style="width:200px;">Email</p> <input class="sizetext" type="text" maxlength="10" name="email"> 
<div style="clear:both"></div> 
<p class="floatleft" style="width:200px;">Telephone</p> <input class="sizetext" type="text" maxlength="10" name="telephone"> 


<p>Priority</p> 
<select name="priority" size="1"> 
<option value="Low">Low</option> 
<option value="Normal">Normal</option> 
<option value="High">High</option> 
<option value="Emergency">Emergency</option> 
</select> 

</select> 
<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br /> 

<br /> 
<input class="buttonstyle" type="submit" value="Send"> 
</form> 

    <div id="formResponse"> 
     </div> 

PHP -

<?php $name = $_POST['name']; 
$email = $_POST['email']; 
$priority = $_POST['priority']; 
$message = $_POST['message']; 
$telephone = $_POST['telephone']; 
$formcontent="From: $name \n Email: $email \n Telephone Number: $telephone \n Priority: $priority \n Message: $message"; 
$recipient = "myemailaddress"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); 
echo "Thank You!"; 
?> 

폼 검증 및 아약스 - 내가 알고 싶습니다 무엇

<script type="text/javascript" language="JavaScript"> 


var FormName = "contactus"; 



var RequiredFields = "name,email,priority,message"; 



function ValidateRequiredFields() 
{ 
var FieldList = RequiredFields.split(",") 
var BadList = new Array(); 
for(var i = 0; i < FieldList.length; i++) { 
    var s = eval('document.' + FormName + '.' + FieldList[i] + '.value'); 
    s = StripSpacesFromEnds(s); 
    if(s.length < 1) { BadList.push(FieldList[i]); } 
    } 
if(BadList.length < 1) { return true; } 
var ess = new String(); 
if(BadList.length > 1) { ess = 's'; } 
var message = new String('\n\nThe following field' + ess + ' are required:\n'); 
for(var i = 0; i < BadList.length; i++) { message += '\n' + BadList[i]; } 
alert(message); 
return false; 
} 

function StripSpacesFromEnds(s) 
{ 
while((s.indexOf(' ',0) == 0) && (s.length> 1)) { 
    s = s.substring(1,s.length); 
    } 
while((s.lastIndexOf(' ') == (s.length - 1)) && (s.length> 1)) { 
    s = s.substring(0,(s.length - 1)); 
    } 
if((s.indexOf(' ',0) == 0) && (s.length == 1)) { s = ''; } 
return s; 
} 
// --> 
</script> 

    <script type="text/javascript"> 

      $(document).ready(function() { 

       $(".contactus").submit(function() { 

        $.post("mail.php", $(".contactus").serialize(), 

         function(data) { 
          $("#formResponse").html(data); 
         } 
        ); 
        return false; 
       }); 
      }); 
     </script> 

는 제출 된 후 양식을 숨기는 방법입니다 .

+0

내가 동의합니다. 0 % 동의는 용납되지 않습니다. – Jack

+2

오, 제 사과, 나는 그것을하기에 적절한 예절이었습니다. 이제 끝났어. – andy

답변

2
$(".contactus").on('submit', function() { 
    $this = $(this); 
    $.post("mail.php", $(".contactus").serialize(), function(data) { 
     $("#formResponse").html(data); 
     $this.hide() 
    }); 
    return false; 
}); 

을 시도하거나 당신이 시도 할 수 :

$(document).ready(function() { 
    $(".contactus").on('submit', function(e) { 
     e.preventDefault(); 
     $this = $(this); 
     $.ajax({ 
      type: 'POST', 
      url: "mail.php", 
      data: $(".contactus").serialize() 
     }).done(function() { //done will only hide if the submit is successful, using always instead will alway hide the form 
      $this.hide(); 
     }); 
    }); 
}); 
+0

양식이 숨기지 않습니다. – andy

+0

jquery 나 javascript가 좋지 않다는 점에 유의해야합니다. – andy

+0

이 작업은 가능하지만 mail.php에 대한 게시가 성공한 경우에만 해당 파일이 없거나 경로가 잘못되어 양식이 숨겨지지 않고 메일도 보내지지 않습니다. .on ('submit', ... '사용은'.submit'과 동일합니다. – Louis

1

$('form.contactus').submit(function() { 
    $(this).hide(); 
}); 
+0

잘 모르겠습니다. – andy

관련 문제