2015-11-29 11 views
6

Ho ottenuto il mio sito web su Github Pages Service. Sto cercando di implementare il modulo di contatto gratuito FormSpree ma dopo aver inviato il modulo, ti reindirizza a un sito Web diverso. Qualcosa che vorrei evitare. Così ho cercato su internet e, naturalmente, anche altri volevano eliminarlo (ho omesso la mia e-mail nella figura qui sotto).Come aggirare il reindirizzamento di FormSpree?

enter image description here

Questa è la forma ho ottenuto sopra, ma in realtà non funziona affatto. Ha funzionato prima però ho cercato di giocherellare con esso.

Ecco ciò che la forma si presenta come di default dal FormSpree:

<form action="//formspree.io/[email protected]" 
     method="POST"> 
    <input type="text" name="name"> 
    <input type="email" name="_replyto"> 
    <input type="submit" value="Send"> 
</form> 

Ecco la mia versione (che ha lavorato bene, prima ho cercato di aggirare il reindirizzamento)

<div class=modal-body style="background-color: #454545"> 
    <p>Please use the form below to contact us regarding feedback or any questions you may have! 
     We will never use the information given below to spam you and we will never pass on your 
     information to a 3rd party.</p> 
    <p>As we are using <a target="_blank" href="http://formspree.io">FormSpree</a> for this form 
    please consult their privacy policy for any questions regarding this matter.</p> 
    <form id="contactform" method="POST"> 
     <div class="form-group"> 
      <div class="input-group"> 
       <span class="input-group-addon">Name</span> 
       <input name="form-name-input" type="text" name="name" class="form-control" required> 
      </div> 
      <div class="input-group"> 
       <span class="input-group-addon">Email</span> 
       <input name="form-email-input" type="email" name="_replyto" class="form-control" required> 
      </div> 
      <div class="input-group"> 
       <span class="input-group-addon">Subject</span> 
       <input name="form-subject-input" type="text" name="subject" class="form-control" required> 
      </div> 
      <div class="input-group"> 
       <span class="input-group-addon">Description</span> 
       <textarea name="form-description-input" name="description" class="form-control" rows="4" cols="60" required></textarea> 
      </div> 
      <input type="text" name="_gotcha" style="display:none" /> 
      <input class="btn btn-success" data-dismiss="modal" type="submit" id="form-submit-btn" value="Submit"> 
      <input type="hidden" name="_next" value="http://www.dynamicrealities.net" onclick="FormSentConfirmation()"/> 
     </div> 
     <script> 
      var contactform = document.getElementById('contactform'); 
      contactform.setAttribute('action', '//formspree.io/' + '[email protected]'); 
     </script> 
    </form> 
</div> 
<div class="modal-footer" style="background-color: #333333"> 
    <button class="btn btn-danger btn-bg" data-dismiss="modal" type="button" id="form-dismiss-btn" onclick="">Close</button> 
</div> 

E quando ho chiamo _next voglio che eseguire il seguente avviso:

function FormSentConfirmation() { 
    alert('Thanks for the email, we\'ll be in touch promptly.'); 
} 

Wh it Premo il pulsante Invia, tutto ciò che accade è che il modulo va via ma non ricevo nessuna email. Probabilmente mi sto sbagliando perché sono abbastanza nuovo ancora in HTML/JavaScript.

+0

Non so FormSpree, ma si dovrebbe essere in grado di verificare se la pagina viene reindirizzata, quindi 'return false;' e si dovrebbe essere buono per andare. – MortenMoulder

+0

Ho aggiunto il modulo standard che ti danno come esempio. Finché lo si inserisce in tale struttura e si chiama 'action =" // formspree.io/[email protected] " method =" POST "' nel modulo, FormSpree farà il resto. – OmniOwl

+1

Controlla www.enformed.io, funziona come formpree ma ha un reindirizzamento fuori dalla scatola – Ivangrx

risposta

6

seguire il loro esempio AJAX in fondo: https://formspree.io/

$("#sendMessage").on("click", function() { 
    $.ajax({ 
     url: "//formspree.io/[email protected]", 
     method: "POST", 
     data: {message: "hello!"}, 
     dataType: "json" 
    }); 
}); 

ricordarsi di includere jQuery anche per questo al lavoro. Rimuovere il:

var contactform = document.getElementById('contactform'); 
contactform.setAttribute('action', '//formspree.io/' + '[email protected] 

e sostituirlo con il mio codice e modificare il selettore. Oppure utilizzare $("form").on("submit"...

Ecco il mio esempio, che si invia una mail e richiede un avviso per l'utente: http://jsfiddle.net/228d4snb/

fare tutto quello che vorresti fare a destra prima che return false;

+0

Oh okay. Mi è totalmente mancato. Ci proverò adesso. Grazie! – OmniOwl

+0

@Vipar Cercando di impostare un esempio mentre parliamo: P – MortenMoulder

+0

@Vipar Controlla la mia modifica. Collegamento con un esempio funzionante: http://jsfiddle.net/228d4snb/ – MortenMoulder

5

Utilizzare questo input nascosto campo all'interno del modulo per il reindirizzamento dopo l'invio del modulo. Puoi reindirizzare gli utenti a una pagina che ti piace o che hai creato utilizzando questo blocco di codice.

<input type="hidden" name="_next" value="//site.io/thanks.html" /> 

sostituire valore con un URL pagina di ringraziamento valido.

Segui questo link per un tutorial su how to use Formspree e anche un video demo

4

V'è in realtà un modo più semplice ora:

_next 

Per impostazione predefinita, dopo aver presentato un modulo l'utente viene mostrato il ringraziamento Formspree" La tua "pagina". È possibile fornire un URL alternativo per quella pagina.

<input type="hidden" name="_next" value="//site.io/thanks.html" /> 

Questo è documentato alla fine del https://formspree.io/

Problemi correlati