0

嘿,我的开发人员,我正在学习 jquery,对执行一个简单的任务有疑问,请帮帮我。

我有一个默认背景颜色为红色的选择字段,但是当用户单击该字段并选择除选择电子邮件地址之外的任何其他内容时,我想将其背景颜色更改为白色。

<select id="email" style="background-color: red">
  <option value="">Select Email Address</option>
  <option value="abc@example.com">abc@example.com</option>
  <option value="test@example.com">test@example.com</option>
</select>

到目前为止,我已经能够执行 onclick 功能,但是如何在其中插入其值的代码。

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

4 回答 4

2

我建议您将事件从更改.click().change()并尝试以下操作:

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

演示

于 2013-10-23T10:54:32.653 回答
1

给你(我建议绑定.change事件而不是.click):

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

希望有帮助。

于 2013-10-23T10:54:22.237 回答
1

替换click()change()

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

演示小提琴

只有在实际更改值时才会触发更改,而不是单击或打开/关闭

于 2013-10-23T10:55:14.200 回答
1

你可以这样做:

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

演示:小提琴

于 2013-10-23T10:55:29.677 回答