在提交表单span消息更改位置的原因
on submit form span message changes position why?
我试图理解为什么每次字段变空时jquery生成的消息都会改变位置!
因此,如果消息是由ajax的反馈生成的,那么它就会被放置在登录框正下方的适当位置。如果提交时字段(输入框)为空,则不会调用ajax脚本,并且空字段的消息显示在正上方,但下方为40px或更多。
jquery脚本:
<script type="text/javascript">
<!--
$(document).ready(function(){
$("#loginform").submit(function(){
$('#loginform input[type=text]').each(function(n,element){
if ($(element).val()=='') {
$(".message").html('<p>O campo '+element.id+' tem de ter um valor!</p>').fadeIn("slow").delay(2000).fadeOut(1000);
return false;
}
else{
$.post("login.php", { usrname:$("#Nome").val(), passwd:$("#Palavra-passe").val()}, function(data){
if(data == '1'){
$("#subLog").hide();
$(".message").html('<p>Login efectuado com sucesso, a redirecionar...</p>').fadeIn("slow").delay(2000).fadeOut(1000, function (){
$("#login").fadeOut('slow', function(){
location.reload();
});
});
}
else{
$("#subLog").hide();
$(".message").html('<p>Erro! Tente novamente por-favor!</p>').fadeIn("slow").delay(1500).fadeOut(1000, function(){
$("#subLog").fadeIn('fast');
});
}
});
}
});
return false;
});
});
//-->
</script>
css消息样式:
.message{
text-align:center;
color: white;
background: rgba(0, 0, 0, .5);
margin-top: 65px;
padding: 4px;
font-weight: bold;
font-size: small;
border: 2px solid white;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
-khtml-border-radius: 6px;
border-radius: 6px;
}
形式:
<div class="box" id="login" style="width: 326px; height: 228px; top: 39%; background-image: url('images/loginBox.png');background-repeat: no-repeat;">
<form id="loginform" action="" method="post">
<fieldset style="display: block">
<legend></legend>
<input id="Nome" class="transparent" type="text">
<input id="Palavra-passe" class="transparent" type="password">
<input id="subLog" type="submit" value="Login">
</fieldset>
</form>
<div class="message"></div>
更新:
当调用ajax指令时,提交按钮被隐藏,因此位置更改为65px。为了纠正这个小问题,我从css规则中删除了margin-top属性,并用.css('margin-top','value')更改了位置。通过这种方式,我将值更改为不同的消息,并且两者都显示在同一屏幕位置。非常感谢。
好吧,我不知道它在ajax响应后是如何处理的,但如果你把字段留空,你只需要从css 中去掉这一行
margin-top: 65px;
没事的。
看这里:http://jsfiddle.net/Ature/2/
p.S.我还添加了
$('div.message').hide();
避免在生成任何警告之前显示div消息
编辑-也许你有其他规则影响你的div。如果在插入之前加载了其他规则,你可以添加行
margin-top: 0px;
以覆盖它们。
此外:当您重新加载您的页面时,请记住清除缓存!
相关文章:
- 检索要提交的字段的标记位置
- 如何在提交html表单后保持相同的位置
- HTML 按钮以在页面上的其他位置提交表单
- 如何在提交事件的底部设置窗口位置
- 如何将HTML表单提交到2个位置=Java脚本和PHP
- 在表单中提交用户位置
- 如果用户尚未提交,则应在导航前收到警报,否则导航到所需位置
- 使用 AJAX 将表单提交到两个位置
- 延迟表单提交,直到检索到位置
- 用户提交位置后,重新居中谷歌地图
- 如何使用javascript提交表单后返回到原始滚动位置
- 在回发(提交)时保持表单位置 asp.net MVC
- 多个单选按钮,用于更改“提交点击位置.href.”.可能的语法错误
- JavaScript onchange可将表单提交到不同的位置
- 在提交表单时停留在当前位置
- 提交来自时不要自动滚动到顶部.保持当前位置
- 谷歌地图API v3:如何设置缩放级别和地图中心到用户提交的位置
- 如何在禁用JavaScript的情况下加载具有特定滚动位置的页面以提交表单
- 从GET切换到POST,需要将表单提交到两个不同的位置
- 使用Javascript和PHP向两个位置提交表单数据