下面是我的javascript函数来验证用户...我想在登录失败时保留表单,用户名/密码文本框为空。
function authenticate(form)
{
if (form.username.value == "Administrator" && form.password.value == "password")
{
window.open('OrderList.aspx')/*opens the target page while Id & password matches*/
}
else
{
alert("Error Password or Username")
$("#username").val("")
$("#password").val("")
form.????????????('Login.aspx')//so that it stays on the same page wihout reloading the page.
I tried window.open, but it opens another instance of the form.
/*displays error message*/
}
}
答案 0 :(得分:3)
我认为你要解雇onclick
或onSubmit
。为了帮助防止表单提交,您需要使用onSubmit
并让它返回此函数的结果。在验证失败的情况下,您的javascript函数需要return false;
以防止提交表单。
验证通过后,您可以return true;
或不执行任何操作(假设您希望表单继续提交...如果您只想向window.open()
发出呼叫,那么您应该在这两种情况下return false;
。
有关更详细的说明,请参阅this answer类似的问题。
至于从文本字段中删除值,您当前拥有的内容(例如下面的代码)将适用于此 - 您目前没有看到它的影响的唯一原因是页面正在重新加载由于提交表格。
$("#username").val("");
$("#password").val("");
答案 1 :(得分:2)
使用您的函数处理onSubmit
并return false
- 不会发生任何事情。
function authenticate(form)
{
if (form.username.value == "Administrator" && form.password.value == "password")
{
window.open('OrderList.aspx')/*opens the target page while Id & password matches*/
}
else
{
alert("Error Password or Username")
$("#username").val("")
$("#password").val("")
return false;
}
}
答案 2 :(得分:2)
正如德米特里所说,你可以这样做:
$(form).on(
'submit',
function(){
if (passwordsMatchOrWhatever){
//do whatever a successful submission should
} else {
//reset field values if you want to
return false;
}
}
);
提交表单时,会触发'submit'事件。上面的代码使用jQuery附加一个函数,以便在发生时运行。从该函数返回false会取消整个提交。