2013-07-25 4 views
1

Мне нужно отправить форму с target = _blank и перенаправить страницу на другую.redirect после формы отправить jquery

HTML

<form id="registration_form" name="registration_form" method="post" action="actionurl" target="_blank"> 
    <input type="button" name="submit" id="submit" value="Submit" /> 
</form> 

Jquery

$(document).ready(function() 
{ 
    $('#registration_form').submit(function(e) 
    { 
     var flag=validate(); 
     if(flag) 
      $(location).attr('href',redirectionurl); 
     return flag; 
    }); 

    $("#submit").click(function(){ 
     $('#registration_form').submit(); // this triggers the submit event 
    }); 
}); 

Если я изменить тип кнопки для ВВЕСТИ формы представления в соответствии с флагом проверки, но перенаправление не работает.

Если я использую BUTTON вместо отправки перенаправления, но форма не отправляется.

Где я был неправ. Помогите.

спасибо.

+0

Поскольку отправитель отправляется в оба конца на сервер, было бы логичным сделать это перенаправление на стороне сервера? – nubinub

+0

@ nubinub любое решение? – smk3108

+0

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

ответ

0

Я думаю, что вы делаете это с трудом, поскольку вы определяете цель как _blank, но вы отправляете форум позже, поэтому я предлагаю вам выполнить проверку на стороне сервера, а не на jquery. HTML-код должен выглядеть так:

<form id="registration_form" name="registration_form" method="post" action="actionurl" target="_blank"> 
    <input type=hidden name="flag_input" value="false"> 
    <input type="button" name="submit" id="submit" value="Submit" /> 
</form> 

И код JQuery:

$(document).ready(function() 
{ 
    $('#registration_form').submit(function(e) 
    { 
     var flag=validate(); 
     if(flag) 
      $("#flag_input").val("true") 
    }); 

    $("#submit").click(function(){ 
     $('#registration_form').submit(); 
    }); 
}); 

И тогда сервер получить flag_input - если это правда, он будет перенаправлять, если нет, то пользователь будет иметь чтобы снова заполнить форум. если вы вообще не хотите перенаправлять, вы можете использовать ajax.

EDIT: и на стороне сервера (я не знаю, что вы используете Какие языки, но основной является так :)

если (flag_input == верно) - генерировать PDF и перенаправлять X

остальное - перенаправление на Y (страницы форума)

Позвольте мне знать, если это помогло. Goodluck!

+0

Мне нужно создать pdf-файл в форме submit на новой вкладке и перенаправить страницу формы на другую страницу. как это сделать – smk3108

+0

ok, так что вы можете использовать этот код и на стороне сервера: (я не знаю, какие языки вы используете, а базовый - вот так :) if (flag_input = true) -redirect to X , иначе перенаправить на Y (я отредактировал ответ) –

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