jquery(addClass removeClass)提交后保持表单活动

时间:2015-05-25 21:14:55

标签: javascript jquery html forms

我有一个按钮。单击该按钮时,将显示一个表单。我正在使用:

  $('#theform').addClass('hidden')  
  $('#theform').removeClass('hidden');
  <div id="theform" class="hidden"><form  method="POST" action="index.php" enctype="multipart/form-data" onsubmit="return validateForm(this);"></form></div>

它工作正常,但提交表单后表单消失。

在提交后我一直在尝试制作表单,但无法找到解决方案。

我的问题:提交表单后,如何让表单显示(删除.hidden)?

3 个答案:

答案 0 :(得分:0)

试试这个:

var form = $('#theform');

form.submit(function(e){
   e.preventDefault(); //Prevents page from refreshing.
   form.removeClass('hidden');
});

这应该可以解决问题。

答案 1 :(得分:0)

延伸@ XerxesNoble的帖子

var form = $('#theform');

form.submit(function(e){
   e.preventDefault(); //Prevents page from refreshing.
   if (!validateForm($(this))) { return false; }
   // need to do some actual submission here
   ...

   form.removeClass('hidden');
});

另一个简单的解决方案是,您只需在默认情况下激活表单,然后您仍然可以验证并刷新页面

答案 2 :(得分:0)

还可以选择“删除”隐藏的属性类,然后“添加”具有可见属性的新类。试试:

jQuery(document).ready(function () {
    "use strict";

    // maybe serialize an input using ajax
    //var bppxlocation = $('input.bppx-location').val(JSON.stringify(data));
   jQuery(document).ready( function() {
   $( ".bppxLocationForm" ).submit(function( event ) {
       event.preventDefault();
       $('#bppxMessage').removeClass('msg-disabled');
       $('#bppxMessage').addClass('msg-active');


       console.log( "class removed ok" );   
    });
});
    
})( jQuery );

您可能还需要在新的 CSS 选择器上使用 .delay() 创建一个定时事件,以便让 addClass 在页面/div 上或对页面/div 执行任何有效的操作。也许尝试动画淡出消息div...也许尝试:

.msg-active{
left: 0;
opacity: 0;
animation: fadeOut ease 15s;
}
.msg-disabled{
left: -999em;
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
#bppxMessage{ postion: absolute; }