为什么在Javascript里用window.location.href=‘a.html’语句不能实现网页跳转啊。浏览器还是显示原网页。
脚本是:<scriptlanguage="Javascript1.2">functionisRegisterUserName(obj){varvalue=obj.stri...
脚本是:
<script language="Javascript1.2">
function isRegisterUserName(obj)
{
var value = obj.string.value; // 得到输入框中的值
var pattern = /^001|002|003$/; // 创建正则表达式对象
flag = pattern.test(value); // 测试匹配
if(flag==0){
alert("错误,请重新输入!");
return false;
}
window.location.href='index.html';
return true;
}
</script>
网页里的表单是:
<form name="form1" method="get" onSubmit="return isRegisterUserName(this)">
<input name="string" type="text">
<input type="submit" value="确定">
</form>
直接试着用window.location.href属性设置就可以实现自动跳转,但是为什么把它放在function里面就不行了呢?我想实现的是如果输入字符串正确(匹配)就跳转,否则就不跳转的功能 展开
<script language="Javascript1.2">
function isRegisterUserName(obj)
{
var value = obj.string.value; // 得到输入框中的值
var pattern = /^001|002|003$/; // 创建正则表达式对象
flag = pattern.test(value); // 测试匹配
if(flag==0){
alert("错误,请重新输入!");
return false;
}
window.location.href='index.html';
return true;
}
</script>
网页里的表单是:
<form name="form1" method="get" onSubmit="return isRegisterUserName(this)">
<input name="string" type="text">
<input type="submit" value="确定">
</form>
直接试着用window.location.href属性设置就可以实现自动跳转,但是为什么把它放在function里面就不行了呢?我想实现的是如果输入字符串正确(匹配)就跳转,否则就不跳转的功能 展开
4个回答
展开全部
因为当输入正确时,isRegisterUserName return true,这样浏览器就会执行表单提交的默认动作 - 对于没有指明action的form,提交到当前页面(这可以通过点击确定后,地址栏变为“当前页地址?string=value"看出,因为method是get,所以表单键/值加在了地址后面)。把最后的return true改为return false就正常了。
虽然跳转代码是在return true的前面,看起来应该是先执行跳转,但是浏览器都不是这样实现的,所以只能用return false阻止掉浏览器的默认动作。
虽然跳转代码是在return true的前面,看起来应该是先执行跳转,但是浏览器都不是这样实现的,所以只能用return false阻止掉浏览器的默认动作。
追问
牛啊,不过我测试了所有主流浏览器以后发现chrome/opera/firefox什么的都可以跳转了,只有用IE9的时候,还是不行,就像你说的,地址栏最后出现了?string=value,然后就停在本界面了,这是为什么呢?
追答
IE9我试过,应该也可以的。你试的时候浏览器下面有没有黄色的提示说阻止了ActiveX或是Script,如果有的话选择允许执行。
展开全部
在form里加个action不就可以了
<form name="form1" method="get" onSubmit="return isRegisterUserName(this)" action="'index.html">
<input name="string" type="text">
<input type="submit" value="确定">
</form>
<form name="form1" method="get" onSubmit="return isRegisterUserName(this)" action="'index.html">
<input name="string" type="text">
<input type="submit" value="确定">
</form>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要这行代码前加上alert("flag");测试下有没有执行到这行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
window.location.href='index.html';
改成:
window.location="index.html";
href不要。
改成:
window.location="index.html";
href不要。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询