2016-03-30 2 views
0

Я вижу несколько таких вопросов, но у меня есть настройка. У меня есть код, запускаемый непосредственно из Sitecore, поэтому единственное, что я могу использовать, это jQuery (нет AJAX). Форма либо отправляет значения в указанное место, либо отправляется на retURL, я не могу заставить их сделать то и другое.Как установить 2 действия на форму submit

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 отправил POST значениям, а затем пользователь отправляется на другую страницу. До сих пор мне удалось только выстрелить (последний был введен), а не оба.

<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(); 
+1

Почему вы не можете использовать AJAX? –

+0

У меня уже есть функция jquery, чтобы позаботиться о форме, поэтому мне нужен способ сделать эту работу без использования ajax – Keith

+0

https://api.jquery.com/submit/ – SpYk3HH

ответ

0

Попробуйте это:

var form = $('#your_form_id'); 

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

0

Вы можете добавить button.click() событие, и в этом яваскрипте функции, сделать два AJAX звонки на два отдельных веб-служб, которые выполняют две разных задачи. Вы можете запустить оба из них одновременно или дождаться, когда первая будет успешной, и они запустили вторую.

Смежные вопросы