2016-12-07 2 views
1

フォームフィールドでは、4つのフィールドの状態にアイドル、フォーカス、有効、無効の4種類の色を使用したいと考えています。
概念は、触れられていないフィールドのためのリラックスした色、フィールドが入力されると中立の色、後でユーザーが入力している間、有効性に応じて良好な/ nogoodの色を持つことです。
現時点では、2つの妥当性の色はCSSによって入力で処理されています:必須:無効{..} ...
フィールドがまだ空のときに色付けを防ぐ方法がわかりません。私はこの機能を設定した場合
さらに、:入力されたときJQueryマルチスタットフィールドの背景色を設定する

$('.fieldBack').on('focus', function() { 
    this.style.background=colorIdle; 
}); 

フィールドが正しく白(colorIdle)に設定されていますが、HTML5のチェックが失われたかのように、それは関係なく、実際の妥当性の白いままです。 私はかなり混乱しています。

+0

あなたが作業例を提供することはできますか? jsfiddle/snippet/codepen – Dekel

答えて

0

私は、これはあなたが何をしたいかだと思う:

Demo

Javascriptを

var colorIdle = 'lightblue'; 
var colorFocus = 'lightgreen'; 
var colorFilled = 'green'; 
$("input").focusin(function() { 
    $(this).css('background-color', colorFocus) 
}); 

$("input").focusout(function() { 
    if($(this).val() != '') { 
    $(this).css('background-color', colorFilled) 
    } else { 
    $(this).css('background-color', colorIdle) 
    } 
}); 

HTML

<form id="formPro" action=""> 
    Required input <input type="text" required> <br/> 
    Normal input <input type="text"> 
    <button type="submit">Submit</button> 
</form> 

CSS

input { 
    background-color: lightblue; 
} 

https://jsfiddle.net/qLnrcdod/5/

+0

これは私が必要とするものの一部です。 HTML5検証が欠けています(私は 'required'と 'pattern'を使用します)。私はすでに何か似たようなことをしましたが、ユーザーがフィールド(「フォーカス」)を入力して何かを入力すると、HTML5有効/無効に関連付けられた色はもう表示されません。つまり、 'colorFilled'はCSSで定義され、HTML5で選択された 'colorValid'または 'colorInvalid'で置き換える必要があります。その間、私はCSS 'input.focus.required.valid ..' solution @ Dekelをテストしています。残念ながら、私はFiddle(私はそれを勉強すべきです! – Orionis

+0

@Orionis https://jsfiddle.net/qLnrcdod/8/良い!私はすでにそのようになっていて、あなたのフィドルが私を助けました。分かりやすくするために、私のテストでのトラブルの原因の1つは、入力フィールドの型に独自のクラスを設定するFoundation6にありました。時には必要なものとは対照的です。 – Troyer

+0

@Triyer Quite今すぐ別の解決策を作ります。 – Orionis

関連する問題