【问题标题】:JavaScript auto-POST with NAME带有 NAME 的 JavaScript 自动 POST
【发布时间】:2011-05-31 16:44:44
【问题描述】:

我正在构建一个 OnBase 电子表格。表单上有三个按钮,都是submit。 OnBase 根据用于提交表单的按钮名称执行不同的操作。如果按钮有一个nameOBBtn_CrossReference,它会打开另一个带有交叉引用文档的窗口。我需要以编程方式“单击”该按钮。

我已经阅读了几篇关于如何使用 JavaScript 提交表单的文章,但似乎没有一篇文章能够实现我的目标。我只需要POST 并让它看起来来自一个名为OBBtn_CrossReference 的按钮。

我不需要提交任何数据。页面当前的设置方式,整个页面已经是一个表单,因为我不想破坏其他表单按钮的功能,所以我似乎必须保持这种方式。

更新: 下面的建议被测试为来自body 标记中的onload 事件的调用,并且由于按钮发布页面重新加载并且调用一遍又一遍地产生无限的子窗口。我将不胜感激有关如何让按钮仅在页面第一次加载而不是回发时被点击的建议。

【问题讨论】:

  • 是否有部分问题没有得到解答?想知道为什么没有选择答案。

标签: javascript forms post button


【解决方案1】:

我知道我写这篇文章有点晚了,但你可以尝试利用 cookie 来完成这项工作:

if (document.cookie.indexOf('xref=true', 0) < 0) {

    // Set the xRef cookie, so we do not fire it again for this form.
    document.cookie = 'xref=true';

    //alert(document.cookie);
    document.getElementById("OBBtn_CrossReference").click();
}
else {

    document.cookie = "xref=false";
    //alert(document.cookie);
}

我在 10.0 的厚客户端和瘦客户端上对此进行了测试,效果很好。

本网站上的帖子是我自己的,不一定代表我公司的立场、战略或意见。

【讨论】:

    【解决方案2】:

    链接、按钮、复选框上有一个click() 方法。例如,我通过在 chrome 的命令行中运行 document.getElementById('submit-button').click() 提交了这条评论。

    【讨论】:

    • 很好,它回答了这个问题,我笑了。
    • 哇,这直接回答了如何以编程方式点击。傻我。谢谢。
    • 我在测试这个,发现它没有按预期工作。由于按钮发布页面被刷新,然后再次触发带有 .click() 事件的 onload 事件。有什么想法可以在哪里进行此调用,以免被多次调用?
    • 它似乎是那些提交给自己的页面之一,我多么讨厌那些。在提交中添加一个 url 参数,您可以检测到 onload,这样您就不会每次都重新单击它。讨厌的黑客,但如果你不想解决你的烂摊子,你必须做这样的事情!
    • 我想我明白你在说什么:修改表单的动作,对吧?但是,表单上有三个按钮都提交给自己(OnBase 工程在这里工作)。如何指定单击了哪个按钮?你有一个简单的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多