2016-07-03 34 views
6

Ho un modesto Bootstrap fittizio con un avviso JS molto semplice che deve essere attivato quando si fa clic sul pulsante di invio. Il codice è vivo here e questo è ciò che sembra:Punto interrogativo nell'URL dopo la chiusura della casella di avviso

<div class="modal fade" id="contact" role="dialog" > 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <form class="form-horizontal" role="form" name="contact-form"> 
      <div class="modal-header"> 
       <h4>test</h4> 
      </div> 
      <div class="modal-body"><p>This is body</p></div> 
      <div class="modal-footer"> 
       <button type="submit" id="submit" class="btn btn-primary btn-lg" onclick="alert('something');">Send</button> 
      </div> 
     </form> 
    </div> 
</div> 

Se si visita il sito, è possibile attivare il modal cliccando sul link contatto nel menu di navigazione in alto. Il modal si presenta così:

enter image description here

Come si può vedere, c'è solo un campo e un pulsante di invio. L'evento onclick() del pulsante è impostato per avvisare la parola "qualcosa" sullo schermo. Funziona bene tranne che quando chiudi l'avviso, la pagina si aggiorna con un "?" aggiunto all'URL. Come impedire questo aggiornamento e da dove viene il punto interrogativo?

+1

Wow, almeno avere la decenza di citare un motivo se è necessario downvotare una domanda? Ho violato le regole qui? – TheLearner

+0

Il collegamento che offre "codice" va a qualcosa di non correlato. –

+0

@AlexKudryashev: No, non è così. Questo è il link in cui il codice è "live" ... Ho persino postato uno screenshot. Ad ogni modo, Rishat ha già risposto così grazie. – TheLearner

risposta

3

In un primo momento ho pensato che accade perché il pulsante ha la proprietà type insieme a submit, quindi consiglio di rimuovere completamente questa proprietà, e il punto interrogativo finale non sarebbe probabilmente apparire più. Ma lo fa.

Quello che deve essere fatto è l'azione di default dell'evento deve essere impedita. Per fare questo, tornare false proprio lì nella funzione di callback onclick evento:

<button onclick="alert('something'); return false;">...</button> 

In questo modo è, beh, return false, e questo è percepito come se si vuole evitare l'ulteriore esecuzione della manifestazione click, in modo efficace presentare operazione.

Problemi correlati