如何在iframe中禁用文本框

时间:2012-10-15 18:07:26

标签: jquery iframe input click javascript

场景:一个名为index.html的大型页面,一切都在这里发生。 索引有10个选项卡(jquery ui选项卡)。使用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();

没有找到我,有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

应该做你想要的,因为iframe包含一个与主页面在同一个域页面。

答案 1 :(得分:0)

试试这个:

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'});
});