- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个为 Alfresco 应用程序开发的 Webscript(.js 文件)。它处理一个按钮,该按钮显示一个表单,该表单旨在选择订阅了 Alfresco 空间的成员,以便向他们发送邮件。
所有复选框都是使用订阅者姓名动态生成的。
您可以选中您想要的任何成员,您还有一个特殊的复选框,可以让您选择或取消选择所有成员。
此特定复选框在 Chrome 和 Firefox 上正常工作。
但是,当您在 Internet Explorer 8 上检查它时,无论成员名称是否被检查,都没有选择或取消选择任何成员。
以下是表单生成和选中复选框时触发的 onClick 函数的代码示例:
updateMembersList : function TS_updateMembersList(containerId)
{
var div = Dom.get(containerId);
div.innerHTML = "<div class=\"memberDiv\">" +
"<input type=\"checkbox\" id=\"selectDeselectAllCb\" checked=\"true\" onchange=\"YAHOO.Bubbling.fire('selectDeselectAllChanged')\" class=\"memberCb\"/>" +
"<label for=\"selectDeselectAllCb\" class=\"memberLabel\">" +
this.msg('label.selectDeselectAll') + "</label>" +
"</div>";
for (var i=0; i<this.members.length; i++)
{
var member = this.members[i];
var avatar = Alfresco.constants.URL_CONTEXT + "/components/images/no-user-photo-64.png";
if (member.authority.avatar && member.avatar != "")
{
avatar = Alfresco.constants.PROXY_URI + member.authority.avatar + "?c=force";
}
div.innerHTML += "<div class=\"memberDiv\">" +
"<input type=\"checkbox\" id=\"cb_" + member.authority.userName + "\" checked=\"true\" onchange=\"YAHOO.Bubbling.fire('selectDeselectMemberChanged')\" class=\"memberCb\"/>" +
"<label for=\"cb_" + member.authority.userName + "\" class=\"memberLabel\">" +
member.authority.firstName + " " + member.authority.lastName + "</label>" +
"</div>";
}
},
selectDeselectAllChanged: function selectDeselectAllChanged(){
var selectDeselectAllCb = Dom.get('selectDeselectAllCb');
var checked = selectDeselectAllCb.checked;
console.log("Select All");
var cbs = YAHOO.util.Selector.query("input[id^='cb_']");
for (var i=0, j=cbs.length; i<j; i++)
{
var cb = cbs[i];
cb.checked = checked;
}
},
selectDeselectMemberChanged: function selectDeselectMemberChanged(){
var selectDeselectAllCb = Dom.get('selectDeselectAllCb');
var cbs = YAHOO.util.Selector.query("input[id^='cb_']");
var firstChecked;
if (cbs[0] != null){
firstChecked = cbs[0].checked;
}
for (var i=0, j=cbs.length; i<j; i++)
{
var cb = cbs[i];
if (cb.checked === firstChecked){
continue;
}
else{
selectDeselectAllCb.checked = false;
return;
}
}
selectDeselectAllCb.checked = firstChecked;
},
一开始我以为是IE8不支持查询,其实不是。
IE7 和更新版本支持这种语法。
最佳答案
尝试删除 console.log("Select All");
并将其替换为 Alfresco.logger.debug("Sellect All");IE 不喜欢控制台对象。
此外,在 jslint 上运行您的代码 - 如果某处有无效的 json,IE 将停止。
此外,尝试在开发人员模式下运行 IE - 将其设置为向您显示脚本错误,您就会知道它在哪里停止。
关于JavaScript selectAll\deselectAll 复选框功能在 IE8 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9308843/
我在表格布局中有路线列表。动态创建的 CheckBox 和 TextView。我设置了复选框 ID。 我想做 selectall & deselectAll 。我们如何实现? 我使用编码创建了复选框。
这是我尝试但没有成功的示例。 JsFiddle 我期望的是:单击按钮时所有选项都将被取消选择。 我尝试使用“刷新”和“渲染”,但也没有帮助。 Mustard K
我有一个为 Alfresco 应用程序开发的 Webscript(.js 文件)。它处理一个按钮,该按钮显示一个表单,该表单旨在选择订阅了 Alfresco 空间的成员,以便向他们发送邮件。 所有复选
我正在使用 Selenium 浏览器自动化框架测试网站。在测试过程中,我切换到特定的框架,我们将其称为“frame_1”。后来,我在 Select 类中使用了 deselectAll() 方法。不久之
我是一名优秀的程序员,十分优秀!