2013-06-25 448 views
1

我有一個聯繫表單,當頁面加載時隱藏。然後可以通過單擊聯繫人表單按鈕查看聯繫人表單,使其滑動並滑動。問題是當提交表單時頁面刷新,並且如果有錯誤消息或成功消息被隱藏,因爲頁面已重新加載,您必須單擊「聯繫表單」按鈕才能看到它。我不擅長jquery或php。任何幫助將非常感激。表單提交後,我需要顯示消息。提交後隱藏Jquery聯繫表格

該網站是http://www.carlisleironing.co.uk/index.php

我jQuery是

$(document).ready(function() { 
    $("#contactLink").click(function() { 
     if ($("#contactForm").is(":hidden")) { 
      $("#contactForm").slideDown("slow"); 
     } else { 
      $("#contactForm").slideUp("slow"); 
     } 
    }); 
}); 
+2

Ajax sumbit的形式,這裏是一個例子,這個想法是這樣的一個例子:http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/,當您提交表單時,您不會重新加載。 – We0

+0

您還可以檢查是否顯示錯誤並顯示錶格: 'if($(「#error」)。is(「:visible」)){// show form}' – stackErr

+0

@ We0'dataString ='name = '+ name +'&email ='+ email +'&phone ='+ phone;'什麼是邪惡混亂!?!?!使用'serialize'! –

回答

1

添加以下(就在你問的最後});之前):

if ($('#contactForm #error').size() > 0){ 
    $('#contactForm').slideUp('slow'); // or just .show(); 
} 

測試是否存在#error元素,如果是,則顯示錶單。我不確定你的成功信息是什麼樣的,但類似的測試也可以成爲這樣的測試。

至於其他答案:是的,你可以做一個AJAX提交,但機會是(我在這裏假設背景)超出了這個問題的範圍。這將涉及特殊的請求處理和附加的驗證庫(y/ies)。

+0

這是一個很好的答案,非常好。 –

+0

如果他已經有jQuery,還有什麼額外的庫?有一個額外的請求,他可以從原始文件中複製大部分代碼。更好的錯誤處理和更好的方法。 IDK,如果它工作我猜它可行,但這就像在技術上說你的車可以駕駛三輪... – We0

0

您可以使用Ajax提交表單和顯示結果無需重新加載頁面:

$('form').submit(function() { 
    $.post($(this).attr('action'), $(this).serialize(), function(data) { 
     console.log(data); 
    }); 
    return false; 
}); 
0

我假設有人提交表單時,php頁面會生成錯誤,但用戶無法看到它們,因爲表單在頁面加載時默認隱藏。

您可以命名提交按鈕。如果用戶點擊提交按鈕,該按鈕的值將與獲取或發佈請求一起發送。然後你可以改變你的php頁面的行爲,如果表單被提交,就不會隱藏聯繫表單。如果用戶提交的表單

<input type="submit" name="theSubmitButton" value="Submit!" /> 

在PHP $_GET['theSubmitButton'](或$ _POST如果您使用的是POST請求)將被設置,並且它不會被設置,如果這是情況並非如此。您可以使用isset($_GET['theSubmitButton'])來測試用戶是否已提交頁面並相應地更改聯繫表單的類別。