我希望在某个页面上弹出登录表单。
<a id="test" href="#login_form">Click me</a>
<div style="display:none">
<form id="login_form" method="post" action="parse_login.php">
<p id="login_error">Please login</p>
<table>
<tr><td><input type='text' name='username' placeholder="username" style="width: 250px;" /><p /></tr></td>
<tr><td><input type='password' name='password' placeholder="password" style="width: 250px;" /><p /></tr></td>
</table>
<div class="logginbutton"><button type='submit' name='submit' class="button-small">Login</button>
</form>
</div>
和JS如下:
$("#test").fancybox({
'scrolling' : 'no',
'titleShow' : false,
'onClosed' : function() {
$("#login_error").hide();
}
});
$("#login_form").bind("submit", function() {
if ($("#username").val().length < 1 || $("#password").val().length < 1) {
$("#login_error").show();
$.fancybox.resize();
return false;
}
$.fancybox.showActivity();
return false;
});
我想要的是,表格应该在页面加载而不是onclick上弹出,它应该留在那里直到访问者登录,所以需要摆脱近距离标志。
答案 0 :(得分:0)
尝试
jQuery(document).ready(function ($) {
$.fancybox({
href: "#login_form",
modal: true,
scrolling : 'no',
titleShow: false,
onClosed : function() {
$("#login_error").hide();
}
});
});
它将在页面加载时启动fancybox。
注意:modal: true
将阻止关闭fancybox并且关闭按钮将不会显示( escape 或框外的点击也不会关闭它。如果您在框内放置一个关闭按钮(绑定到$.fancyblox.close()
方法),或者表单通过验证并且已提交,表单将关闭
在这种情况下,您应该从此脚本中删除return false
$("#login_form").bind("submit", function() {
if ($("#username").val().length < 1 || $("#password").val().length < 1) {
$("#login_error").show();
$.fancybox.resize();
return false; // prevents the form of being submitted if validation fails
}
// $.fancybox.showActivity(); // you don't need this unless you are going to display the results in fancybox
// return false; // <== this will prevent the form of being submitted, regardless it passes the validation
});
注意这是针对fancybox v1.3.4的(因为您在帖子中使用的API选项,我假设您使用的是该版本)
编辑:好的,我为您做了,请参阅 JSFIDDLE
我甚至纠正了你的小HTML错误,如
<a id="test" href="#login_form">Click me</div>