如何在表单提交上设置2个操作

时间:2016-03-30 14:04:38

标签: jquery sitecore

我看到了这样的一些问题,但是我对它进行了调整。我有直接从Sitecore运行的代码,所以我唯一可以使用的是jQuery(没有AJAX)。表单要么将值提交到指定位置,要么转到retURL,我无法同时执行这两个操作。

var data = {};

f.find('input, textarea, select').each(function(i) {
    var tag = $(this);
    data[tag.attr('name')] = tag.val();
});

$.form(f.attr('data-action'), data, 'POST').submit();
data['retURL'] = 'http://www.google.com';

我有一些隐藏的字段和输入,我试图以某种方式调用表单中的retURL。我需要data-action来发布值,然后将用户发送到另一个页面。到目前为止,我只能得到一个(最后一个进入),而不是两个。

<div class="jquery-form" data-action="https://salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">
    <input type=hidden name="retURL" value="http://www.google.com">

    <!-- Then all the elements in the form... -->

    <!-- Then the submit button... -->

    <a class="button submit" href="#">Submit</a>

我还尝试在:

中添加一个变量
var retURL = "http://www.google.com";
$.form(f.attr('data-action'), data, retURL, 'POST').submit();

3 个答案:

答案 0 :(得分:0)

试试这个:

var form = $('#your_form_id');

$.post(f.attr('data-action'), form.serialize())
    .done(function(data) {
        window.location.replace('http://www.google.com');
    });

答案 1 :(得分:0)

您只需要更改action标记的<from>属性,如下所示。

$(document).ready(function () {
    $("form").submit(function (objEvent) {
        // Prevent Form submission
        objEvent.preventDefault();
        // Change the action based on selection
        $(this).prop("action", $("select").val());
        // Now submit the form to selceted URL.
        $(this)[0].submit();
    })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST" action="">
    Select URL for Form Submit
    <select>
        <option value="http://www.google.com">http://www.google.com</option>
        <option value="http://www.yahoo.com">http://www.yahoo.com</option>
    </select>
    <input type="submit" value="Submit The Form" name="submit_btn" />
</form>

答案 2 :(得分:0)

你可以添加一个button.click()事件吗?在这个javascript函数中,对两个执行两个不同任务的独立Web服务进行两次AJAX调用。您可以同时运行它们或等待第一个成功,然后运行第二个。