web-dev-qa-db-ja.com

フォーカスとブラーのjquery背景色の変更

次の問題があります。3つのテキスト入力フィールドがあるフォームがあり、フィールドの1つにフォーカスがあるときに背景色を変更し、フォーカスを失ったときに元に戻したい。私は次のコードを思いつきました:

HTML(簡易):

<form>
<input class="calc_input" type="text" name="start_date" id="start_date" />
<input class="calc_input" type="text" name="end_date" id="end_date" />
<input class="calc_input" size="8" type="text" name="leap_year" id="leap_year" />
</form>

jQuery

$(document).ready(function() {
    $('input:text').focus(
    function(){
        $(this).css({'background-color' : '#FFFFEEE'});
    });

    $('input:text').blur(
    function(){
        $(this).css({'background-color' : '#DFD8D1'});
    });
});

ありがとう

25
Argoron

#FFFFEEEは正しい色コードではありません。 #FFFFEE代わりに。

16
Guffa

あなたがやろうとしていることは、これに単純化することができます。

$('input:text').bind('focus blur', function() {
    $(this).toggleClass('red');
});
input{
    background:#FFFFEE;
}
.red{
    background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<form>
    <input class="calc_input" type="text" name="start_date" id="start_date" />
    <input class="calc_input" type="text" name="end_date" id="end_date" />
    <input class="calc_input" size="8" type="text" name="leap_year" id="leap_year" />
</form>
14
Hussein

さらに簡単に、CSSだけで問題を解決できます。

input[type="text"], input[type="password"], textarea, select { 
    width: 200px;
    border: 1px solid;
    border-color: #C0C0C0 #E4E4E4 #E4E4E4 #C0C0C0;
    background: #FFF;
    padding: 8px 5px;
    font: 16px Arial, Tahoma, Helvetica, sans-serif;
    -moz-box-shadow: 0 0 5px #C0C0C0;
    -moz-border-radius: 5px;
    -webkit-box-shadow: 0 0 5px #C0C0C0;
    -webkit-border-radius: 5px;
    box-shadow: 0 0 5px #C0C0C0;
    border-radius: 5px;
}
input[type="text"]:focus, input[type="password"]:focus, textarea:focus, select:focus { 
    border-color: #B6D5F7 #B6D5F7 #B6D5F7 #B6D5F7;
    outline: none;
    -moz-box-shadow: 0 0 10px #B6D5F7;
    -webkit-box-shadow: 0 0 10px #B6D5F7;
    box-shadow: 0 0 10px #B6D5F7;
}
6
JL Garcia

テスト済みコード:

$("input").css("background","red");

完全:

$('input:text').focus(function () {
    $(this).css({ 'background': 'Black' });
});

$('input:text').blur(function () {
    $(this).css({ 'background': 'red' });
});

バージョンでテスト済み:

jquery-1.9.1.js
jquery-ui-1.10.3.js

0
Amin Ghaderi