2014-01-19 3 views
0

У меня есть кнопка входа в систему, и когда вы нажимаете на нее, отображается div с классом .loginfields. Когда вы входите в систему, я хочу, чтобы он тоже показывался. Я не могу понять, как это должно быть doen.Если форма отправлена ​​show 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, когда ваша страница разметки оказывается, однако, как вы не показали какой-либо из вашего PHP кода, который собирается быть хитрым, чтобы помочь с – geedubb

+0

Установите дисплей: CSS в php-код? Или скопировать все .loginfields в php? Это приводит к дублированию кода. – 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', она будет вызывать 'show()' в элементе '.loginfields'. Вызов '$ ('# login'). Submit()' пытается отправить форму с помощью JavaScript там и затем. –

+0

См. Http://api.jquery.com/category/events/ –

2

Вам нужно показать div на мероприятии submit формы.

$("#login").on("submit", function(e) { 
    e.preventDefault(); // Stop submitting form 
    $(".loginfields").show(); 
}); 
Смежные вопросы