我把 application.js 删除换成我自己的 js 文件了 因为我以为这里的内容都被//注掉了以为没用呢 但是网上有人说这东西还有用 好吧 那我用 scaffold 新建个表单来再加入 js...还是不好使=。=
3.1.1 是仲么了呢
页面文件:views/login/login.html.erb 表单字段的 id 分别为 we_ee 和 we_xx layout 文件:layouts/login.html.erb
<head>
<title>首页</title>
<%= stylesheet_link_tag "login" %>
<%= javascript_include_tag "application" %>
<%= javascript_include_tag "yanzheng" %>
<%= csrf_meta_tags %>
</head>
js 文件:assets/javascripts/yanzheng.js
function yanzheng() {
if (document.getElementById("we_ee").value=="") {
window.alert("请输入用户名");
document.getElementById("we_ee").focus();
return false;
}
if (document.getElementById("we_xx").value=="") {
window.alert("请输入密码");
document.getElementById("we_xx").focus();
return false;
}
return true;
}
按理说这种问题已经不算问题了 但是就是不出来 尴尬-,- 我连那个 rake assets:precompile 命令也试过了
@Rei 敲了这个命名也是没有反应 这个小东西以前试过是好用的 那时候在学怎么往 ROR 里添 js, 当时有反应之后就感觉这样就算会往 ROR 里添 js 了 今天换到别的工程一用没反应 再回原来的小东西里试=.=...也没反应
@zhangyuan 岂止正确 正确得令人发指-,-
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/tab.js?body=1" type="text/javascript"></script>
<script src="/assets/yanzheng.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
看到大家都那么厉害我天天还在这里纠结这些问题压力很大呀
/assets/tab.js?body=1 /assets/yanzheng.js?body=1 /assets/application.js?body=1
这三个文件里的内容,是否正确呢?
<head>
<title>首页</title>
<link href="/assets/login.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/tab.js?body=1" type="text/javascript"></script>
<script src="/assets/yanzheng.js?body=1" type="text/javascript"></script>#第一次加载
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/yanzheng.js?body=1" type="text/javascript"></script>#第二次加载
<meta content="authenticity_token" name="csrf-param" />
<meta content="2hhRwRuJwb1xQ4GK9I5fNOeYgA4wPVxNRQU6YllRGrk=" name="csrf-token" />
</head>
完整的是这样的 但是我注意到 yanzheng.js 被加载了两回,而我的 layout 文件:layouts/login.html.erb 里面只写了加载一次 不知道是不是这个原因 -.-
实际上我这里 tab.js 这个 js 文件是可以正常工作的,而且他在这里也只被加载了一回 我的 yanzheng.js 是从以前可用的地方复制过来的应该也没有问题,所以我就怀疑是重复加载造成的,但是我不敢肯定 我也不知道为什么会被重复加载
冷静一下,我还没看明白你想干啥呢。
我单看 1 楼不知道什么问题
我甚至把
<%=image_submit_tag("dl.gif")%>
写成了
<input type="submit" onclick="yanzheng()"/>
依旧没反应 这是我的终极大招了 于是我得出了结论=。=就是没加载进来
1.链接对了 在我的主页可以看到正确的加载路径 2.编译出来的内容?嗯? 3.js 的内容也是对的 我自己用记事本写了个表单然后用这个验证是有反应的
虽然我每天都来问这问那的 但是我觉得这个问题实在是太小了 直到我试了四天都没弄出来我就暴躁了-.-
贴一下你的 application.js
估计是你的 application.js
这句 require_tree .
。如果有,把它去掉应该就可以了。
理由:
yanzheng.js 加载了两次
asset piple 会加载 application.js
(可配置) 里的 require *
注释。
require_tree .
的作用是加载 application.js
所在目录下所有的 js 文件。所以加载+1
javascript_include_tag
再加载了一次 +2