0

私は特定の文字を作ろうとしています:「*」は、私が取り組んでいるJavascriptコーディングの行で赤くなります...以下は私のオリジナルです:

function init(){
    var inp = document.getElementsByTagName('input');
    for(var i = 0; i < inp.length; i++) {
        if(inp[i].type == 'text','tel','number', 'email') {
            inp[i].setAttribute('rel',inp[i].defaultValue)
            inp[i].setAttribute('style', 'color: grey;')
            inp[i].onfocus = function() {
                if(this.value == this.getAttribute('rel')) {
                    this.value = '';
                    this.setAttribute('style', 'color: black;')
                } else {
                    return false;
                }
            }

特定の文字を赤くするには、それを変更しますか?

function init(){
    var inp = document.getElementsByTagName('input');
    for(var i = 0; i < inp.length; i++) {
        if(inp[i].type == 'text','tel','number', 'email') {
            inp[i].setAttribute('rel',inp[i].defaultValue)
            inp[i].setAttribute('style', 'color: grey;')
            inp[i].onfocus = function() {
                if(this.value == this.getAttribute('rel')) {
                    this.value = '';
                    this.setAttribute('style', 'color: black;')

                if(this.value == this.getAttribute('*')) {
                    this.setAttribute('style', 'color: red;')

                } else {
                    return false;
                }
            }

どうすればこれを達成できますか?

ありがとう!

4

2 に答える 2

2

...私は本当に退屈なので、javascript を使用して、あなたがやりたいことをやることになりました

Mootools を使用していますが、必要に応じて jQuery を使用して再作成するのに十分なインスピレーションを提供するはずです。

function reposition() {
    var position = inputEl.getPosition();
    var occludeLabel = inputEl.value;
    occludeLabel = occludeLabel.replace(/\*/g, '<span class="red">*</span>', 'g');
    occludeEl.setStyles({
        top: position.y + 1,
        left: position.x + 1
    });
    occludeEl.set('html', occludeLabel);
}

基本的に、入力をぼかすたびに、入力ボックスの値を含む div が入力ボックスの上に配置され、テキストが遮られます。.replace()すべてのアスタリスクを内容を赤くするスパンに置き換える単純な方法を実行しました。

すべてのコードについては、この jsfiddle を参照してください: http://jsfiddle.net/eTEvQ/2/

于 2012-11-04T01:16:56.980 に答える
0

要素のみをスタイルできますが、属性はスタイルできません..

この行は意味がありません..

this.value == this.getAttribute('*')

*は有効な属性名ではありません

また、これは質問の現在の入力要素です。

入力要素全体に色を設定できますが、その中の特定の文字には設定できません

于 2012-11-03T21:29:35.827 に答える