我尝试实现的是文本输入和textareas可用的占位符行为:占位符具有不同的颜色,如果用户输入值,然后将其删除,则占位符值和占位符颜色都会重置。
具体案例:我们有一个带有所谓占位符选项的精选项目,其中此选项的文字为“选择处理”和“#39;选择处理'并且选项的值为空。我想让select元素按以下方式运行:
现在,据我所知,这是无法实现的。我尝试将适当的颜色变化绑定到mousedown,点击和更改事件,以及所有可以想象的变化,但事情最终并不起作用。会发生什么:
AND THEN BOOM - > 5.在另一个SELECT MOUSEDOWN上,颜色不会变为默认颜色。
我尝试的代码,至少有一个变体,是(optionvals.color_sec是保持默认颜色的变量):
// Select field type color manipulation
$('.noosa-contact-form select').css('color', '#ccc');
$('.noosa-contact-form select').on( 'change', function() {
$this = $(this);
if ( $this.val() == '' )
$(this).css('color', '#ccc');
else {
$this.css('color', optionvals.color_sec);
}
} )
非常感谢任何帮助。
答案 0 :(得分:0)
select
和option
同时包含在样式中,可以实现所需的效果。
jQuery(document).ready(function($) {
$('select').css('color', '#ccc');
$('option[value=""]').addClass('placeholder');
$('select').on('mousedown', function() {
$('option:not(.placeholder)', this).css('color', '#db0a5b');
$('.placeholder', this).css('color', '#ccc');
})
$('select').on('change', function() {
if ($(this).val() == '') {
$(this).css('color', '#ccc');
} else {
$(this).css('color', '#db0a5b');
}
})
})
可以在https://jsfiddle.net/jpsafgqz/17/
看到工作示例感谢guest271714指出我正确的方向。