请帮我解决这个问题,jquery在w3schools运行良好,但在我的rails 2应用程序中获取错误,如检查未定义 这是我的HTML代码:
Checkbox: <input class="category_select" title="3" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="6"/>
<input class="category_select" title="9" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="7"/>
<input class="category_select" title="6" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="8"/>
和Jquery如下
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js">
function check(val,that) {
var total=parseInt(0,10);
$('.category_select').each(function(){
if($(this).is(':checked')==true)
total=total+parseInt($(this).attr('title'),10);
});
if (total > val){
$(that).removeAttr('checked');
alert('Total is greater than val !');
}else{
alert('Total is less than or equal to val !');
}
}
</script>
上面的代码运行良好,但是当我将它插入我的rails应用程序时出现错误,我不知道我哪里出错了。 任何帮助都很有价值
答案 0 :(得分:3)
在rails 2中JQUERY不支持所以我将脚本更改为Javascript,如下所示
<script type='text/javascript'>
function check_total(e,t){
value=parseInt(e);
var a=parseInt(0);
$$("input.category_select").each(function(e){1==e.checked&&(a+=parseInt(e.title))}),a>value?(alert("Total is greater than Total Subcategory Hours !"),t.checked=!1):a==value&&alert("Total is equal to Total Subcategory Hours !")}
</script>
感谢您的回答。上面的脚本对我有用
答案 1 :(得分:2)
{{3}}可以包含src
属性或内容,但不能同时包含两者。如果两者都有,则忽略内容(内容被认为是#34;脚本文档,&#34;不是代码)。
为jQuery脚本使用另一个脚本块
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js">
</script>
<script type="text/javascript" >
function check(val, that) {
var total = parseInt(0, 10);
$('.category_select').each(function() {
if ($(this).is(':checked') == true)
total = total + parseInt($(this).attr('title'), 10);
});
if (total > val) {
$(that).removeAttr('checked');
alert('Total is greater than val !');
} else {
alert('Total is less than or equal to val !');
}
}
$(function() {
$(document).on('change', '.category_select', function() {
check(11, this);
});
});
</script>
正在使用jQuery绑定事件处理程序。
答案 2 :(得分:0)
1.您的剧本没有正确加载 2.您在文档范围内没有加载脚本。
注意:您必须使用单独的脚本标记来加载外部JS文件并编写JS代码。
试试这个
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type='text/javascript'>
function check(val, that) {
var total = parseInt(0, 10);
$('.category_select').each(function() {
if ($(this).is(':checked') == true)
total = total + parseInt($(this).attr('title'), 10);
});
if (total > val) {
$(that).removeAttr('checked');
alert('Total is greater than val !');
} else {
alert('Total is less than or equal to val !');
}
}
</script>
</head>
<body>
Checkbox:
<input class="category_select" title="3" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="6" />
<input class="category_select" title="9" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="7" />
<input class="category_select" title="6" name="subject_ids[]" onchange="check(11,this)" type="checkbox" value="8" />
</body>
</html>
&#13;
答案 3 :(得分:0)
此错误即将发生,因为您正在将您的函数定义为DOM Ready事件的范围..... 而不是尝试在函数范围之外定义函数。