2011-06-27 11 views
0

入力テキストにテキストを変更するとき:問題私は<a href="http://jsfiddle.net/QZcjg/" rel="nofollow">this</a>コードがある場合、ユーザーの書き込み代

<input type="text" id="myText" class="input_box_hidden" /> 

$(document).ready(function() { 
    var nomeAzienda=$("#myText"); 

    if(nomeAzienda.val()=="") nomeAzienda.val("Nome Azienda"); 
    if(nomeAzienda.val()!="Nome Azienda") nomeAzienda.removeClass().addClass("input_box"); 

    $("#myText").focus(function() { 
     if(nomeAzienda.hasClass("input_box_hidden")) 
     { 
      nomeAzienda.val(""); 
      nomeAzienda.removeClass().addClass("input_box"); 
     } 
    }); 

    $("#myText").blur(function() { 
     if(nomeAzienda.val()=="") 
     { 
      nomeAzienda.val("Nome Azienda"); 
      nomeAzienda.removeClass().addClass("input_box_hidden"); 
     } 
    });    
}); 

をそれは完璧に動作します。

問題は、サーバーに入力ボックスを送信するときに、クライアントが返信するときに値を格納するためです(ユーザーが別の値を挿入しないようにする)。この制御により

if(nomeAzienda.val()!="Nome Azienda") nomeAzienda.removeClass().addClass("input_box"); 

私はそれがデフォルト値ではありません確認してください。

しかし、ユーザーが「Nome Azienda」を値として挿入するとどうなりますか?それは動作しません。

どうすればこの問題を防ぐことができますか?

+0

HTML5はテキスト入力用のプレースホルダ属性を提供します。 – Francisc

+0

ええ、私はHTML5で作業していません(不幸にも多くのブラウザではサポートされていません) – markzzz

+0

ユーザが入力テキストフィールドに「Nome Azienda」と入力すると同じ動作が必要ですか?だから、もし誰かが "Nome Azienda"とタイプすると、それが消えるように焦点を当てるのですか? – Francisc

答えて

1

..あなたは詰まっています。しかし、真剣に、私はそれが完全に罰金だと思う、あなたが知っているかもしれない、 "会社名"という会社があるかもしれません。少なくとも私はこの問題をどこでも見てきましたテキストボックス透かしが使用されていたので、あなたのソリューションは完全に受け入れられます。

1

ない私は理解していますが、時にユーザー入力「ノームAziendaメール」input_box_hiddenクラスを取得するために提出したい場合は、その後、あなたは右の最初のif文の後に、ボケ関数にこれを追加することができますを確認します。

else if(nomeAzienda.val().toLowerCase()=='nome azienda') 
{ 
    nomeAzienda.val("Nome Azienda");//correct char case for user input 
    nomeAzienda.removeClass().addClass("input_box_hidden"); 
} 
関連する問題

 関連する問題