【问题标题】:jquery and javascript not work on prettyphoto loaded html formjquery 和 javascript 在 prettyphoto 加载的 html 表单上不起作用
【发布时间】:2013-05-12 08:52:22
【问题描述】:

prettyphoto 在模态框中显示我的表单。我在表单中插入了一个链接并设置了onclick="$('#formid').submit()"。当我点击它时,页面导航到表单操作,但没有任何发布的数据。当我用输入 <input type="submit" value="ok"> 替换链接时,它会正确发送表单数据。 我通过调用函数来测试 jquery 元素访问。结果,显示 jquery 无法访问元素值。 我通过 jquery 将一些 html 放入表单中,但在重新加载显示的模式框后也注意到发生了。 有没有办法通过jquery和javascript访问prettyphoto加载的html表单?

【问题讨论】:

    标签: javascript jquery forms prettyphoto


    【解决方案1】:

    jquery 中的submit()<form> 元素起作用,因此最好的方法是在表单中放置一个提交按钮,但这样做的方式是它隐藏在视图中,例如:

    <input id='dummy' type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"/>
    

    在您的 jquery 中,当单击锚链接时,您可以通过单击下面的按钮来模拟提交按钮的提交:

    $('a').click(function(){
      $('#dummy').trigger('click');
      });
    

    这是我的fiddle 供您查看。请注意,虽然我使用了一个真实的网站来模拟它,但它不会接收到发布的数据。

    【讨论】:

    • 当我使用 prettyphoto jquery 操作时,不要作用于模态框。
    • @sajadnabavi 你能在你的原始帖子(OP)中发布一些代码吗?这样我就可以检查了。
    • 问题不在于 jQuery,因为 jQuery 可以完成工作 - 问题是您正在寻找的元素是在 PrettyPhoto 弹出窗口中重新创建的。如果您的元素不包含 ID(唯一元素),那么您可以使用 1.9 之前的“live()”监视器或 .on() 用于 1.10+ - 如果要使用元素 ID,则需要修改prettyPhoto 以便在将元素添加到模态窗口时将其删除,然后在关闭时将其放回原处。
    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多