2

Daniel Stocks の jQuery プレースホルダー プラグインを使用しています。

これはプラグインです: https://github.com/danielstocks/jQuery-Placeholder/blob/master/jquery.placeholder.js

次の小さな問題を除いて、実際にはすべてのフィールドで問題なく機能します。Chrome では、フォーカスがフィールドにある場合、何かを入力するまでプレースホルダーが残ります。ただし、IE と FF では、フォーカス後にプレースホルダー テキストが削除されます。私はそれらすべてが Chrome のように動作することを望んでいます。

プレースホルダーはネイティブにサポートされているので、プラグインがなくても、私が望むように動作します。FF では、前述の問題を除いて、プラグインなしでも機能します。ご想像のとおり、IE ではプラグインがないと機能しません。

4

4 に答える 4

4

私はプラグインの作者です。Chrome のネイティブ サポートを本当に無効にしたい場合は、コードの 71 行目を編集できます。

var NATIVE_SUPPORT = !!("placeholder" in document.createElement( "input" ));

に:

var NATIVE_SUPPORT = false

これを行うことで、ネイティブ サポートを備えたものであっても、すべてのブラウザでプラグインを使用できるようになります。

これは「Chrome」で定義された動作だけではないことを指摘したいと思います。Safari (および iOS のモバイル サファリ) はこのように動作します。これらのユーザーは、この動作に「慣れている」可能性が高いため、正確に何を達成しようとしているのかという質問をするかもしれません。

于 2012-04-10T11:30:50.077 に答える
1

私は似たようなものが必要で、あなたが言及したjqueryuiプレースホルダープラグインにいくつかの変更を加えました。

http://jsfiddle.net/sigmabetatooth/5j55m/

気軽にぶつかって、考えを共有してください。

また、バックスペースやその他の方法でフィールドをクリアしても、プレースホルダーが返され、プレースホルダーが存在するときに入力を選択すると、カーソルがテキストの先頭に配置されます。

@ダニエル私があなたにそれをプッシュすることに興味があるなら、私に知らせてください。

于 2012-07-19T23:32:15.553 に答える
1

ソースの 77 行目から次のセクションを置き換えます。

input.focus(function() {
    placeholder.hide();
});

これとともに:

input.keyup(function() {
    if (input.val() != "") {
        placeholder.hide();
    }
});
于 2012-04-10T10:21:12.090 に答える
0

IEでプレースホルダーを機能させることができます

//IE でプレースホルダーを設定する

$('input[type="text"]').each(function(){        
    var input = $(this);                
    $(input).val(input.attr('placeholder'));                
    $(input).focus(function(){
         if (input.val() == input.attr('placeholder')) {
            input.val('');
         }
    });     
    $(input).blur(function(){
        if (input.val() == '' || input.val() == input.attr('placeholder')) {
            input.val(input.attr('placeholder'));
        }
    });
});
于 2012-06-04T09:33:21.343 に答える