我正在编辑Drupal 7中的一个网站,并使用自定义JS文件为我使用Webform模块创建的表单添加一些脚本功能。
基本上,有一个复选框,如果选中,则会阻止用户填写表单上的冗余字段,如果一个部分的信息也适用于其他部分。
这是我的代码,现在我只是测试是否在函数之间传递信息。
$(document).ready(function() {
var checkbox = $("#edit-submitted-contact-information-pi-checkbox-1");
checkbox.onchange = "checkPI(this);";
});
function checkPI(x) {
if(x.checked) alert("Checkbox is checked");
else alert("Checkbox is unchecked.");
}
但是,当我单击复选框时,没有任何反应。我仔细检查了一下,Drupal将JS脚本添加到页面中(在我添加.info
的{{1}}文件中,并在此之前链接了jQuery。
在进行其他scripts[] = myjs.js
测试后,我发现它正在从文档就绪处理程序中找到alert()
函数。
我错过了某些东西/没有以某种方式做某事吗?
另请注意:我必须确保此网站在IE 8中有效,因此我无法使用check()
方法添加setAttribute()
侦听器。
答案 0 :(得分:0)
找到解决方案......
问题是jQuery将checkbox元素视为[object Object]
而不是[object HTMLInputElement]
。因此,为了避免麻烦,我只使用普通的旧JavaScript来分配函数和监听器,现在一切正常。