1

(私のタイトルがわかりやすいといいのですが、まとめるのは大変でした。)

ここに表示されているように、選択したラジオボタンに応じてフォーム内のテキストを変更するスクリプトがあります:http: //jsbin.com/onowu/

問題は、一部のユーザーがテキストを入力してから他のラジオボタンをクリックすると、そのテキストが削除されることです。

私が探しているのは、ユーザーが入力したテキストがない場合にのみ灰色のテキストを変更する方法です。また、ユーザーがテキストを削除すると、選択したラジオボタンに応じてテキストが空白で埋められます。

あなたはここで私のコードを見ることができます:http: //jsbin.com/onowu/edit

4

1 に答える 1

5

入力にクラス "hint" があるかどうかを確認します。テキストを変更するだけです。

完全な例:

$(document).ready(function() {
    function setText(){
        var kf = this.title.split('|');
        if (kf.length < 0) return;
        if($('#' + this.name + '_text').hasClass('hint')){
            $('#' + this.name + '_text').val(kf[0]).addClass('hint');
        }
        $('#' + this.name + '_text').attr('title', kf[0]);
    }

    $("input[type='text']").inputdynvalue();
    $("input[type='radio']").click(setText);
});

これは、クラス「ヒント」の入力テキストボックスをチェックし、見つかった場合にのみ値を変更することで機能します。Jonathan Sampsonのコメントで述べたように、「.focus() イベントはクラスの「ヒント」を削除し、.blur() イベントは、テキストが提供されていない場合に再び追加します」。

また、W3C が提供するhtml 検証サービスを通じてコードを実行します。有効なコードがない場合、JavaScript はおかしくなる可能性があります。(さらに、誰もが有効な html を書く必要があります)

また、コードに jQuery が 2 回含まれていることに気付きました。そのうちの 1 つを削除することをお勧めします。


更新 (2009 年 7 月 10 日): 以下のコメントに記載されているバグを修正しました。

于 2009-06-27T22:18:40.647 に答える