提交到带有“;动作:javascript"使用javascript

Submit to external form with "action:javascript" using javascript

本文关键字:javascript quot 使用 动作 提交      更新时间:2023-09-26

我在一个页面(one.html)上有一个表单,它的提交操作是javascript函数:

<form id="the_form" action="javascript:myfunc('input_text');" method="post">
    <input type="text" id="input_text" name="input_text">
    <input type="submit">
</form>

我有另一个页面(two.html),其中有一个按钮,当单击该按钮时,我想在one.html上提交表单,并附上input_text的值。使用ajax或任何其他方式可以实现这一点吗?如果可能的话,我也想重定向到我提交表格的页面,尽管这是可选的。

此代码应采用第二种形式:

$(document).ready(function(){
var QueryString = function () {
    // This function is anonymous, is executed immediately and
    // the return value is assigned to QueryString!
    var query_string = {};
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        // If first entry with this name
        if (typeof query_string[pair[0]] === "undefined") {
            query_string[pair[0]] = decodeURIComponent(pair[1]);
            // If second entry with this name
        } else if (typeof query_string[pair[0]] === "string") {
            var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];
            query_string[pair[0]] = arr;
            // If third or later entry with this name
        } else {
            query_string[pair[0]].push(decodeURIComponent(pair[1]));
        }
    }
    return query_string;
}();
if(QueryString.preview){
    console.log(QueryString.preview);
}
});

此示例读取查询和解析。

所以,首先你可以把你的表格作为GET发送,比如http://asd.com/?param1=a&param2=b然后在另一个页面中使用QueryString.param1和QueryString.paam2。

根据这篇文章下面的评论,我猜你想把它的信息从pageA发送到一个php文件,该文件返回一个结果文件:

  • 使用ajax请求下载文件
  • 如何使用jQueryAJAX和SpringMVC3从服务器下载文件
  • 通过AJAX POST下载文件

根据你的问题下的评论,我假设你想用javascript从页面A发布到新页面(页面B)。

快速回答:不可能(以用户友好的方式)
更有用的答案
这需要更多的工作,但根据所提供的信息,这可能会奏效:

  • 通过GET或POST将表格从页面A提交到页面B
  • 创建隐藏字段(<input type="hidden"/>),并用相应的GET或POST值填充这些字段。使用PHP这样的服务器端语言可能会更容易,但在JS中并非不可能
  • 设置隐藏输入并将其命名为<input type="hidden" id="linkedSubmit" value="1" />
  • 创建一些javascript来查看是否为$('#linkedSubmit').val()==1,如果是,请继续在页面B上提交表单

这不是最漂亮的解决方案,在慢速连接时,用户会看到页面跳转。因为它是javascript,所以它是客户端的,因此用户可以手动将值更改为1并欺骗页面。这不应该成为一个安全问题。