2011-10-24 8 views
1

2つのテキストボックスにフォームの設定があり、フォーカスを受けてクリアできるデフォルト値があります。ボックスは必須ではなく、必須ではありません。したがって、フォームはそれらなしで提出することができますが、デフォルト値が設定された状態でフォームが送信されると、POSTに渡されます。フォーカスと送信のフィールドをクリア

投稿データからクリアしてNULL /ブランク値として送信してください。事前に

<input id="town" name="SeV[2]" type="text" autocomplete="off" style="width: 149px; color:#ccc;" onfocus="if(this.value == 'Enter Town/City') this.style.color = '#000'; { this.value = ''; }" value="Enter Town/City" class="field"> 

<input type="text" style="width: 149px; color:#ccc;" maxlength="255" name="SeV[4]" onfocus="if(this.value == 'e.g Football') this.style.color = '#000'; { this.value = ''; }" value="e.g Football"> 

感謝を次のように

マイフォームのコードがあります。

+2

ユーザーが主に更新されたブラウザを使用している場合、HTML5の 'placeholder =" Enter Town/City "を使用することができます(デフォルト値はクリアされています)。 http://webdesignerwall.com/tutorials/cross-browser-html5-placeholder-text – hyperslug

答えて

4

は、このコードを追加し、それが正常に動作する必要があります:

$(document).ready(function() { 
    $("form").submit(function() { 
     $("input:text", $(this)).each(function(index) { 
      if (this.value === this.defaultValue) 
       this.value = ""; 
     }); 
    }); 
}); 

これは、フォームの送信時にすべてのテキストボックスを反復処理し、それらのデフォルト値に等しい場合は、空のために彼らの値を設定します。

Live test case

+0

私はそれがあなたのテストで動作することがわかります。それは私のサイトに入れて、それは動作していません..?フォーム情報は以下の通りです: – StuBlackett

+0

""には、おそらく 'type =" text "'がありません。これはデフォルトであるので、私の悪いです。修正のための編集を見てください。私はまた、フォームが提出されていない値をクリアした複数のフォームでバグを修正したので、コードは提出されたフォームの要素のみを扱うようになりました。 –

+0

ああ!そのトリガリング、しかし、フォームは現在提出していない..? [送信]ボタンをクリックしたとき。フォームは提出しませんが、値はクリアされますが、サブミットは実行されませんか? – StuBlackett

関連する問題