2012-11-21 4 views
12

Beispiel:Wie entfernt man ein Fragezeichen aus einem GET-Formular ohne Felder?

<form> 
    <input type='submit'> 
</form> 

Wenn vorgelegten Ergebnisse in:

http://example.com/? 

Wie man es machen:

http://example.com/ 

?

[Dies ist ein sehr einfaches Beispiel für das Problem, die tatsächliche Form hat viele Felder, aber einige sind manchmal deaktiviert. Wenn alle deaktiviert sind, ist das Nachfahren? erscheint]

+1

Das hängt Frage zu tun versuchen Mark ist ungefähr so ​​nützlich wie ein Anhang ... und manchmal so lästig ... genossen die Umgehungslösungen! :-) – moodboom

Antwort

3

In meinem Fall bin ich mit window.location, nicht sicher, es ist die beste Alternative, aber es ist die einzige, die ich es Arbeit machen könnte:

$('#myform').submit(function() 
{ 
    ... if all parameters are empty 

    window.location = this.action; 
    return false; 
}); 

Meine wirkliche Verwendung war zu konvertieren GET-Parameter an den realen uRL-Pfade, so ist hier der vollständige Code:

$('#myform').submit(function() 
{ 
    var form = $(this), 
     paths = []; 

    // get paths 
    form.find('select').each(function() 
    { 
     var self = $(this), 
      value = self.val(); 

     if (value) 
      paths[paths.length] = value; 

     // always disable to prevent edge cases 
     self.prop('disabled', true); 
    });  

    if (paths.length) 
     this.action += paths.join('/')+'/'; 

    window.location = this.action; 
    return false; 
}); 
0

Ich war auf der Suche nach einer ähnlichen Antwort. Am Ende habe ich eine Schaltfläche erstellt, die beim Klicken auf eine bestimmte Seite umgeleitet wird.

Beispiel:

<button type="button" value="Play as guest!" title="Play as guest!" onclick="location.href='/play'">Play as guest!</button> 

Dies ist keine „Antwort“ auf Ihre Frage, aber vielleicht eine gute Arbeit um sein. Ich hoffe das hilft.

0

Ohne Javascript zu verwenden, bin ich mir nicht sicher, dass es eins gibt. Eine Möglichkeit, das Problem zu lindern kann einen versteckten Eingang zu schaffen, das nur einig Junk-Wert hält, die Sie auf der anderen Seite wie diese ignorieren können:

<input type="hidden" name="foo" value="bar" /> 

diese Weise werden Sie nie eine leere GET-Anforderung haben.

0

Dies ist eine alte Post, aber hey .. hier ya geht

Wenn Sie etwas wie PHP verwenden, können Sie das Formular an eine "Proxy" -Seite senden, die den Header an einen bestimmten Ort + die Abfrage weiterleitet.

Zum Beispiel:

HTML:

<form action="proxy.php" method="get"> 
    <input type="text" name="txtquery" /> 
    <input type="button" id="btnSubmit" /> 
</form> 

PHP (proxy.php)

<?php 

    if(isset($_GET['txtquery'])) 
     $query = $_GET['txtquery']; 

     header("Location /yourpage/{$query}"); 


?> 

ich das es gehe davon aus, was Sie

Verwandte Themen