javascript return false 不能阻止form提交

返回returnfalse,还是会跳转请问错在哪儿?该怎么改?<html><head><title></title><scripttype="text/javascrip... 返回return false ,还是会跳转 请问错在哪儿? 该怎么改?
<html>

<head>
<title></title>
<script type="text/javascript">

function f(len) {
var str = document.getElementById("t1").value;
len = 0;
for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 255) { len += 2 } else { len++ } };
if (len < 10) { document.getElementById("sp").innerHTML = "<span style='color:red;font-weight:bold'>不能少于10个字符<br /></span>" }
else { document.getElementById("sp").innerHTML = "<span style='color:green'>输入正确<br /></span>" }
return len;
}
function checkf() {
var b = f();
if (b < 10) { alert("输入错误"); return false; } }

</script>
</head>
<body><form action="index.php"><input type="text" onblur="f()" id="t1"/><span id="sp">请输入<br /></span><input type="submit" value="确认" onclick="checkf()"/>
</form></body>
</html>
展开
 我来答
yugi111
2014-02-10 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset=utf-8 />
<title>test</title>
<script type="text/javascript">

function f(len) {
    var str = document.getElementById("t1").value;
    len = 0;
    for (var i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 255) {
            len += 2
        } else {
            len++
        }
    }
    ;
    if (len < 10) {
        document.getElementById("sp").innerHTML = "<span style='color:red;font-weight:bold'>不能少于10个字符<br /></span>"
    } 
    else {
        document.getElementById("sp").innerHTML = "<span style='color:green'>输入正确<br /></span>"
    }
    return len;
}
function checkf() {
    var b = f();
    if (b < 10) {
        alert("输入错误");
        return false;
    } else {
       return true;
    }
}

</script>
</head>
<body>
<form action="index.php">
<input type="text" onblur="f()" id="t1"/>
<span id="sp">请输入<br /></span>
<input type="submit" value="确认" onclick="return checkf();"/>
  </form>
</body>
</html>
本逸春vL
2014-02-10 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:650万
展开全部

在 checkf 函数中的return值并没有被表单元素接受,你必须在返回后再用return将验证结果返回给表单元素:

<form action="index.php" onsubmit="return checkf()"><input
type="text" onblur="f()" id="t1"/><span id="sp">请输入<br
/></span><input type="submit" value="确认"/>
</form>

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qbtwmm
2014-02-10 · TA获得超过273个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:134万
展开全部
居然有人说return false 是jQuery的用法。。。。难道jQuery不是JS?
应该这么写:onlickc="checkf(); return false;" 也就是说应该把return false写在onclick属性值里,而不是函数里,超链接的效果同理!
追问
那如果 判断通过 提交会被阻止吗?
追答
看你的意思是想使用if语句判断提交与否,那你就别给添加Onclick事件了,给form添加一个Onsubmit事件监听,把属性值改为checkf()。

那你这么写把:.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妙哉不言诗c
2014-02-10 · TA获得超过438个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:270万
展开全部
<input type="button" value="确认" onclick="checkf()"/>

function checkf() {
var b = f();
if (b < 10) { alert("输入错误"); return false; }
else{
document.getElementById("给form取个id").submit();
}
}

<input type="submit" value="确认" onclick="checkf()"/>是个提交按钮 不管判断通过不通过都要提交一次的
追问
也就是说 return false 无法阻止其提交吗? 那换submit换成button 能阻止跳转吗?
追答
是的,不能阻止
首先你要知道submit和button的区别 submit就是个提交按钮,你给加个方法只是他提交之前会运行的方法 却不能阻止他提交 ,而botton就是个按钮,没有任何作用,而你给他加了个方法,让他判断一下,再自己去提交,就可以实现你想要的结果了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
im森林之王
2014-02-10
知道答主
回答量:11
采纳率:0%
帮助的人:6万
展开全部
不建议用submit.
1
<input type="button" value="确认" onclick="checkf()"/>

2
<form action="index.php" id="myForm">

3
function checkf() {
var b = f();
if (b < 10) { alert("输入错误"); return false; }
else{myForm.submit();}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式