2014-02-11 5 views
0

У меня есть форма, которая после подачи переходит на страницу «http://qwertyasdfgh.rozblog.com/New_Post» (значение действия)Изменения страницы после отправки формы с помощью JavaScript

Я не хочу, чтобы изменить действие, но я хочу, чтобы перенаправить на другую страницу после отправки.

Я попытался перенаправить на «http://qwerty.rozblog.com/page/success» после отправки, но он не работает.

вот код, который я попробовал:

(HTML)

<form method="post" action="http://qwertyasdfgh.rozblog.com/New_Post" id="f1"> 
     <input type="text" name="title" style="width:300px"><br /> 
     <input type="text" name="pimg" style="width:300px" maxlength="3072"><br /> 
     <textarea dir="rtl" id="post" name="post" style="width:300px;" aria-hidden="true"></textarea><br /> 
     <input type="submit" name="postsubmit" value=" submit " style="background:#333;" onclick="location()"> 
    </form> 

(JS)

function location() { 
    window.location.replace("http://qwerty.rozblog.com/page/success"); 
} 

and here is the fiddle

+1

Вы не можете сделать это. Вы пытаетесь сделать страницу двумя действиями, она может только сделать это. – epascarello

+0

не измените страницу, на которую мы перенаправляем, пока у нас есть действие? – alireza

+0

и извините, если я говорю по-английски ужасно: D – alireza

ответ

0

Если возможно, вы можете настроить/New_Post для перенаправления to/page/success, используя meta refreshing в head:

<meta http-equiv="refresh" content="0; url=http://qwerty.rozblog.com/page/success"> 
+0

У меня нет возможности редактировать этот файл! – alireza

1

Вы можете отправить форму с помощью jquery и AJAX (или я неправильно понял):

$('#f1').submit(function(e) 
{ 
    e.preventDefault(); 
    $.post('http://qwertyasdfgh.rozblog.com/New_Post', 
      formDataAsJSON, //use eg. jquery form plugin 
      function(data) 
      { 
       window.location = 'somewhere'; 
      } 
    ); 
}); 
+0

Вы правы, сделали. – czachor

+1

Зачем использовать плагин, когда он встроен в '.serialize()' does? '$ (this) .serialize();' – epascarello

1

У вас есть два варианта.

1) Отправьте эту форму с помощью AJAX и после получения ответа от сервера переадресовать браузер на нужную страницу. Вы можете использовать, например, jQuery с плагином формы Ajax. Код будет выглядеть следующим образом:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
<script src="http://malsup.github.com/jquery.form.js"></script> 

    <script> 
     // wait for the DOM to be loaded 
     $(document).ready(function() { 
      // bind 'f1' form and provide a simple callback function 
      $('#f1').ajaxForm(function() { 
       window.location = "/page/success" 
      }); 
     }); 
    </script> 

ИЛИ

2) Вы можете оставить свою форму и JS, как есть, и использовать, например, PHP для перенаправления пользователя после делать некоторые вещи.

New_post.php

<?php 
// some stuff without printing (you cant change headers if you print something) 

Header("Location: /page/success"); 
+0

полезно! спасибо – alireza

+0

Мое удовольствие. Не забудьте выбрать правильный ответ. – Kudlas

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