JavaScript JS 里面使用 return false 无效

brenda103 · 2015年11月03日 · 最后由 brenda103 回复于 2015年11月04日 · 3472 次阅读
<%= form_for(@work) do |f| %>
    <%= f.select :state, "#render 'shared/pa/state'}".html_safe, { }, {class:"form-control"} %>
    <%= f.submit(class:"btn btn-primary",onclick: "validate()",value:"提交") do %>
   <% end %>
<% end %>
<script type="text/javascript">
    function validate() {
        if (work_state.value =="") {
            alert("请选择!");
            return false;
         }else  {
                    return true;
                    }
     } 
</script>

目的是当 work.state 值为空时,提示请选择!表单不提交,但运行代码时,有提示,表单依旧被提交!这是为什么呢?有什么方法可以解决此问题呢?

work_state 能取到值?不是应该写 var state = $('state').val(),用 state 来做判断

#1 楼 @stargwq 可以取到值,不然也不会 alert 请选择啊!

onclick: 'return validate();'

这个是 form 表单 a,在服务端运行的,你 js 脚本不方便控制验证的。可以在 work 模型对应的代码里面做验证控制:

class Work< ActiveRecord::Base
##

validates :state, presence: true # 这样设置意思是,state的值不为空。

###

#3 楼 @aspirewit 这个方式也试过了没有用!ToT

onclick: "return validate();" 注意后面的分号

#4 楼 @dc2000 好的我试一下,谢谢回复!

#6 楼 @nowherekai 试过了,是这个问题!谢谢帅锅回复!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号