Javascript 返回false或e.preventdefault不工作

Javascript 返回false或e.preventdefault不工作,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我有一个表单和一个文本框,我给50个字符的限制,下面的脚本 工作正常 但当我点击submit时,它会在显示一条警告消息后得到submit 不应提交其报告 function charLimit(e) { var value = $("#concept_name").val(); if(value.length > 50){ alert("Maximum limit is 50 character"); return false; }else{

我有一个表单和一个文本框,我给50个字符的限制,下面的脚本

工作正常

但当我点击submit时,它会在显示一条警告消息后得到submit 不应提交其报告

function charLimit(e) {
    var value = $("#concept_name").val();
    if(value.length > 50){
      alert("Maximum limit is 50 character");
      return false;
    }else{
      return true;
     } 
<%= f.text_area :name, rows:1 , :required => true, :onkeypress=> "charLimit()" %>

<button type="submit" onclick="charLimit()">submit</button>
功能字符限制(e){
var值=$(“#概念_名称”).val();
如果(value.length>50){
警报(“最大限制为50个字符”);
返回false;
}否则{
返回true;
} 
true,:onkeypress=>“charLimit()”%>
提交

请帮助我查找脚本中的错误。

如果要中断
提交
事件,必须将处理程序添加到
表单
元素,而不是
按钮
。否则,只能处理并中断按钮,而不是表单操作

<form action="foo.html" onsubmit="return charLimit()">
    <!-- content -->
    <button type="submit">submit</button>
</form>

提交

简单的实时示例:

如果要中断
提交
事件,必须将处理程序添加到
表单
元素,而不是
按钮
。否则,只能处理并中断按钮,而不是表单操作

<form action="foo.html" onsubmit="return charLimit()">
    <!-- content -->
    <button type="submit">submit</button>
</form>

提交

简单的实时示例:

尝试添加单击事件:

$(“按钮”)。单击(函数(){//添加按钮单击事件
var值=$(“#概念_名称”).val();
如果(value.length>50){
警报(“最大限制为50个字符”);
return false;//如果return false则不提交表单
}否则{
警报(“将提交表格”);
返回true;
} 
});

提交

尝试添加单击事件:

$(“按钮”)。单击(函数(){//添加按钮单击事件
var值=$(“#概念_名称”).val();
如果(value.length>50){
警报(“最大限制为50个字符”);
return false;//如果return false则不提交表单
}否则{
警报(“将提交表格”);
返回true;
} 
});

提交

永远不要使用onclick with button声明,因为它类似于紧耦合编码标准。而是这样做:

<button type="submit" id="submitBtn">submit</button>

$("#submitBtn").on('click',function(event){

    var value = $("#concept_name").val();

    if(value.length > 50){
       alert("Maximum limit is 50 character");
       event.preventDefault();
    }

});
提交
$(#submitBtn”)。在('click',函数(事件){
var值=$(“#概念_名称”).val();
如果(value.length>50){
警报(“最大限制为50个字符”);
event.preventDefault();
}
});

永远不要使用onclick with button声明,因为它类似于紧耦合编码标准。而是这样做:

<button type="submit" id="submitBtn">submit</button>

$("#submitBtn").on('click',function(event){

    var value = $("#concept_name").val();

    if(value.length > 50){
       alert("Maximum limit is 50 character");
       event.preventDefault();
    }

});
提交
$(#submitBtn”)。在('click',函数(事件){
var值=$(“#概念_名称”).val();
如果(value.length>50){
警报(“最大限制为50个字符”);
event.preventDefault();
}
});

我编辑了我的答案,一开始我看错了你的问题。让我先试试这个。我编辑了我的答案,一开始我看错了你的问题。让我先试试这个