2011-02-02 7 views
5

を無効にせずにフォームの送信時に、特定のフォームフィールドを除外するすべての3つのフィールドと、ユーザーは最初の名前と生年月日を記入する場合は、は、どのように私は、次の3つのフィールドを持つフォームを持っている場合、私はフィールド

http: //fakeURL.php?firstName=Fred&lastName=&DateOfBirth=2/5/1952 (where lastName has no value) 
を取得します、しかしURL

http: //fakeURL.php?firstName=Fred&lastName=Flintstone&DateOfBirth=2/5/1952 

を取得します提出私は私が使用したonSubmit時に入力フィールドを無効にしたくない

http: //fakeURL.php?firstName=Fred&DateOfBirth=2/5/1952 (where lastName and value are removed from the URL) 

達成するにはどうすればよい

。入力フィールドを無効にするよりも良い方法はありますか?

あなたはどちらかでなければなりません...

+0

*なぜ*「送信」ハンドラのフィールドを無効にしたくないのですか? – Pointy

+0

フィールドが空であることはなぜ重要ですか?いずれにしても、GETではなくPOSTを使用してURLをよりきれいにし、より多くの実装を訪問者に隠すようにしましたか? – Endophage

答えて

5

を助けてください:

  1. URLにリダイレクト代わりに、フォームを送信しないでください
  2. それを送信する前にフォームからフィールドを削除するか無効にしますAJAXリクエストを作る代わりに、ページ

ASIをを残して、フォームを自分

  • から構築これらのオプションからすべての入力がURLの一部となることなく、GET経由でこのフォームを送信することはできません。それはHTMLとHTTP仕様の一部です。

  • -1

    GETメソッドのフォームは、新しいページをブックマークして渡すことになっている場合にのみ使用してください。

    あなたは、ユーザー(と私はあなたがまた、データベースまたはいくつかの類似した永続的なストレージにその入力を保存すると推定)からの入力を取って話をしているので、あなたの代わりにをPOSTを使用する必要があります。

    +0

    WordPressに伝えてください。 – XedinUnknown

    +0

    *ユーザーからの入力を受け取り、 'get'メソッドで送信することは何も問題ありません。アドレスバーに入力を保存すると、ユーザーがページを更新する場合にも役立ちます。 – rorymorris89

    9

    ちょうど入力要素から "名前" 属性を削除 -

    // exclude the inputId from the form collection 
    $("#inputId").removeAttr('name'); 
    

    お楽しみください!

    +0

    これは素晴らしい、簡単な解決策です。ありがとう! – luqita

    +1

    これは一番上の答えよりもはるかに簡単で、何らかの入力をして、何らかの方法でユーザーを助けるために非常にうまくいきます(この場合、単に名前を入力する必要はありません最初の場所)。 – Kat

    +1

    [Demo](http://jsfiddle.net/jqpw7eef/)(デベロッパーコンソールのネットワークパネルを使用して、送信されたリクエストを調べます(単純に '?sent = foo')。 – Kat

    関連する問題