【发布时间】:2017-05-05 22:15:34
【问题描述】:
在弹出框中,我们正在显示登录表单。一旦用户输入错误的电子邮件 ID 或密码,我们将显示消息:无效登录/密码,但一旦他们输入正确的详细信息并单击登录按钮,用户就会登录。
但问题是弹出框将一直存在,直到我们通过关闭按钮手动关闭弹出框,如下图所示,但如果登录成功,我想隐藏弹出框。
一旦我们点击登录,在 Response 选项卡下,如果没有消息,我想隐藏弹出窗口,如果有消息为 success":false,"error":"Invalid login or password.",我不想隐藏弹出窗口
我试过下面的代码:
HTML
<form>
//code for email and pw
<button onclick = "hideWindow()">Login</button>
</form>
Ajax
function hideWindow()
{
var username=jQuery( "#customusername" ).val();
var password=jQuery( "#custompassword" ).val();
url="";
new Ajax.Request(url, {
method: 'POST',
onFailure: function(response){
},
parameters: {
username: username,
password:password
},
onSuccess: function(response)
{
if(response.responseText=="")
{
//trigger to close popup
document.getElementById('something').style.display = 'none';
document.getElementById('ajaxlogin-mask').style.display = 'none';
}
}
});
}
编辑
<div class="ajaxlogin-window" id="something">
<form>
<div class="content">
<ul class="form-list">
<li>
<input type="hidden" id="likeproduct_id" name="product_id" value=""/>
<label for="email" class="required"><em>*</em>Email</label>
<div class="input-box">
<input type="text" name="login[username]" value="<?php echo $this->htmlEscape($this->getUsername()) ?>" id="email" title="<?php echo $this->__('Email Address') ?>" />
</div>
</li>
<li>
<label for="pass" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
<div class="input-box">
<input type="password" name="login[password]" id="pass" title="<?php echo $this->__('Password') ?>" />
</div>
</li>
<?php echo $this->getChildHtml('form.additional.info'); ?>
</ul>
</div>
<div class="buttons-set">
<button onclick = "hideWindow()" type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2" ><span><span><?php echo $this->__('Login') ?></span></span></button>
</div>
</div>
【问题讨论】:
-
能不能把问题的html部分加进去。对您有帮助会很有帮助
-
用html代码更新问题,请看看.....
-
我正在使用这个 ajax 代码:pasted.co/48186abb
标签: browser