2013-10-23 41 views
0

嘿我的开发人员,我正在学习jquery,并且对执行简单任务有疑问,请帮助我。更新选择字段的值更改css

我其中有一个默认的背景色为红色选择字段,但我想它的研究背景颜色更改为白色,当用户点击该领域,并选择任何其他然后选择电子邮件地址。

<select id="email" style="background-color: red"> 
    <option value="">Select Email Address</option> 
    <option value="[email protected]">[email protected]</option> 
    <option value="[email protected]">[email protected]</option> 
</select> 

到目前为止,我已经能够执行onclick函数,但是如何在其内部插入其值的编码。

$('#email').click(function() { 
    $('#email').css({ 
     'background-color': 'white', 
    }); 
}); 

回答

2

我adivse您从.click()事件更改为.change()和 试试这个:

$('#email').change(function() { 
    if($(this).val() != ''){ 
     $(this).css({ 
      'background-color': 'white', 
     }); 
    } 
    else{ 
     $(this).css({ 
      'background-color': 'red', 
     }); 
    } 
}); 

DEMO

1

在这里你去(我建议你结合,而不是.click.change事件):

$('#email').change(function() { 
    if ($(this).val().length) { 
     $('#email').css({ 
      'background-color': 'white', 
     }); 
    } 
}); 

希望帮助。

1

更换click()change()

$('#email').change(function() { 
    if($(this).val() != ''){ 
     $(this).css({'background-color': 'white', 
    } 
    else { 
     $(this).css({'background-color': 'red'}); 
    } 
}); 

Demo Fiddle

如果该值实际上是改变

变化只会被解雇,而不是点击或只是开/关

+1

什么,如果用户选择“选择电子邮件地址”了? – Sorter

+0

@DeepakMishra更新了答案。 :) – Rex

1

你可以这样做:

$('#email').change(function() { 
    if (this.value != '') { 
     $(this).css({'background-color': 'white'}); 
    } else { 
     $(this).css({'background-color': 'red'}); 
    } 
}); 

演示:Fiddle