2014-01-19 89 views
0

我有一個登錄按鈕,當你點擊它時,顯示類爲.loginfields的div。當你登錄時,我希望它也能被顯示。我無法弄清楚這應該怎麼做。如果表單被提交顯示div

<script type="text/javascript"> 
    $(document).ready(function(){ 
     if($("#login").submit()) { function(e) { 
      $(".loginfields").show(); 
     }} 

     $(".loginfields").hide(); 
     $(".loginenable").show(); 

     $('.loginenable').click(function(){ 
      $(".loginfields").slideToggle(); 
     }); 
    }); 
</script> 

<div class ="loginfields"> 
<form id="login" action="index.php" method="post"> 

在此先感謝。

+0

你可能想用PHP但相應地設置狀態時,你的網頁標記被渲染,因爲你還沒有表現出任何的那將是棘手的,以幫助 – geedubb

+0

將顯示你的PHP代碼:CSS中php代碼?或者複製php中的整個.loginfields?這會導致代碼重複。 – Nijn

+0

默認情況下,提交表單會重新載入您的頁面,因此您在此頁面上的任何javascript操作都是無關緊要的。您需要通過['preventDefault()'](https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault)阻止提交的默認操作,該操作會停止提交表單,或切換到基於PHP的解決方案。 – SoonDead

回答

1

你需要創建一個事件處理程序:

$('#login').on('submit', function() { 
    $(".loginfields").show(); 
}); 

如果你想你的表單提交是動態的,你需要尋找到jQuery's ajax() method(s),讓您提交您的論壇,而不需要重新裝載該頁面(以及您需要將該事件傳遞到該函數中的那個頁面(您當前有(e)),然後撥打e.preventDefault()以防止瀏覽器爲您嘗試此操作)。

+0

這並不顯示提交時的登錄字段。它不應該在if/else語句中嗎? 它不一定是動態的,當表單被提交併且頁面重新加載(表單在同一頁面上處理)時,它應該立即顯示。 – Nijn

+0

這是一個事件處理程序。當你的'#login'表單收到它的'submit'事件時,它會在你的'.loginfields'元素上調用'show()'。調用'$('#login')。submit()'嘗試在那裏用JavaScript提交表單。 –

+0

請參閱http://api.jquery.com/category/events/ –

2

您需要在窗體的submit事件中顯示div。

$("#login").on("submit", function(e) { 
    e.preventDefault(); // Stop submitting form 
    $(".loginfields").show(); 
}); 
相關問題