您好我有一个表单,我用jquery给一个值提交按钮,它工作正常。
jQuery('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
现在表单代码放在wp super pop up pro中。当我用firebug检查时,它是一个弹出的插件,它包含iframe
同样的jquery没有工作,所以我按照iframe的建议尝试contents()
但是这里也没有设置按钮值是我试过的代码
jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
此处.sppro_cboxIframe
是使用iframe放置的类
<iframe class="sppro_cboxIframe" frameborder="0" name="sppro_cbox1381566909072" src='url'>
当我查看源代码时,我无法像上面那样看到iframe。
现在如何更改或添加其中的表单的值。任何帮助都会很感激。
答案 0 :(得分:0)
您将无法使用javascript从iframe外部操纵iframe内的元素。有关相同的原产地政策,请参阅此答案:
jQuery/JavaScript: accessing contents of an iframe
检查该插件是否允许您将jQuery传入iframe。这是你操纵iframe中元素的唯一方法。
答案 1 :(得分:0)
假设 jQuery 在$
内定义为<iframe>
,传递same origin,并且<iframe>
内的页面已开始加载,可以通过contentWindow
属性获取HTMLIFrameElement的 Window 引用。
// get the <iframe> and then it's contentWindow
var iWin = document.getElementsByClassName('sppro_cboxIframe')[0].contentWindow;
// now to use jQuery inside <iframe>
iWin.$.find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('');
答案 2 :(得分:0)
您的代码很好,这是演示:http://jsfiddle.net/T86yw/
jQuery('.sppro_cboxIframe').contents().find('#frm_f_container.with_frm_style .submit input[type="submit"]').val('New Value');
问题出在其他地方。正如你所说的两个页面都有相同的来源,另一件要检查的是你在运行代码时是否已经加载了iframe。