jQuery在JSFiddle中工作但在本地RoR环境中不起作用?
目前我有两个JavaScript函数。 “全部检查”function在JSFiddle和本地环境(http://0.0.0.0:3000)
中都能很好地工作。 但是,“选择动物”或仅选择表单中特定选项的函数仅适用于JSFiddle,但不适用于本地环境。 我想知道是什么导致了这个问题。
以下是我的“_form.html.erb”中的代码:
checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } } function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); }
编辑:
我已将代码更改为以下内容:
checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } } function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); }
并且“全部检查”function运行良好,“检查动物”仍然不起作用:/
第二次编辑:
我也试过去除jquery.min.js周围的头部潮汐和表格周围的身体标签,它给出了相同的结果。 检查所有工作和检查动物没有。
第三次编辑:
阅读你们的建议后修改了代码。 不幸的是,它仍然无法正常工作..非常有趣!
checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } } $(function() { function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); } });
编辑4:
在Firebug显示“Check Animal”未定义之后,我删除了$(function() {
围绕“Check Animal”function。现在新的错误是:
TypeError: $(...).find is not a function ...lue=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox...
新的“检查动物”代码简单地反转回原始代码:
function checkAnimal() { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", true); }
试试这个:
$(function() { function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); } });
我找到了解决方案!
非常感谢你的帮助。 没有你,我不会想到这一点。
解决方案是将代码中的“$”更改为函数“checkAnimal”的“jQuery”,如下所示:
大家节日快乐!