如何禁用iframe中的文本框

场景:一个名为index.html的大型页面,一切都在这里发生。 索引有10个选项卡(jquery ui tabs)。 使用jquery ui的手风琴小部件,每个标签现在平均有3-5个子类别(我被拒绝将图片作为垃圾邮件预防发布但我希望您了解布局的样子)。 这是问题的起点。 iframe驻留在所有这些中,所以我在每个iframe中查看25-30个iframe,大约有5-10个文本字段。 我想要做的只是启用/禁用这些文本字段。

很简单,我知道这可以通过以下方式完成:

$('input[type=text]').attr("disabled", "disabled"); $('input[type=text]').removeAttr("disabled") 

索引上的按钮触发一个函数:

  $(".frameClass").each(function () { console.log("i found a frame called " + this.name); }); 

如何在单击时启用所有输入文本字段的此连接? 我甚至尝试在iframe中创建一个函数,并尝试从.each()调用它

 this.unlockFields(); 

没有任何地方,任何想法?

您必须使用.contents()来访问iframe中的元素,如下所示:

 $(".frameClass").each(function () { $(this).contents().find('input[type=text]').attr('disabled', 'disabled'); }); 

鉴于iframe包含与主页位于同一域的页面,应该按照您的意愿执行。

试试这个:

 var iframes = $('iframe'); iframes.each(function(index, iframe) { var iframe_content = ($.browser.msie ? $(iframe.contentWindow.document) : $(iframe.contentDocument)); iframe_content.find('input[type=text]').attr({disabled:'disabled'}); });