Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果存在';没有价值_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果存在';没有价值

Javascript 如果存在';没有价值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当没有值时,建议采用什么方法来更改输入和文本区域的背景色?这只能在页面加载时完成,还是可以是持久的?我更喜欢持久化,因为我有一个从回调加载的表单 我认为JQuery最好能影响这个css: input[type="text"], textarea { background-color : #d1d1d1; } 我尝试了这个,但由于某些原因,只有textarea发生了更改: input[type="text"]:empty, textarea:empty { background-col

当没有值时,建议采用什么方法来更改
输入
文本区域
背景色
?这只能在页面加载时完成,还是可以是持久的?我更喜欢持久化,因为我有一个从回调加载的表单

我认为JQuery最好能影响这个css:

input[type="text"], textarea {
  background-color : #d1d1d1; 
}
我尝试了这个,但由于某些原因,只有textarea发生了更改:

input[type="text"]:empty, textarea:empty {
  background-color : #d1d1d1; 
}
DevExpress输入文本框:

<input class="dxeEditArea_DevEx dxeEditAreaSys"
 id="ctl00_ctl00_ASPxSplitter1_Content_ContentSplitter_MainContent_ASPxCallbackPanel1_ASPxFormLayout3_ASPxFormLayout3_E18_I" 
name="ctl00$ctl00$ASPxSplitter1$Content$ContentSplitter$MainContent$ASPxCallbackPanel1$ASPxFormLayout3$ASPxFormLayout3_E18" readonly="readonly" 
onfocus="aspxEGotFocus('ctl00_ctl00_ASPxSplitter1_Content_ContentSplitter_MainContent_ASPxCallbackPanel1_ASPxFormLayout3_ASPxFormLayout3_E18')" 
onblur="aspxELostFocus('ctl00_ctl00_ASPxSplitter1_Content_ContentSplitter_MainContent_ASPxCallbackPanel1_ASPxFormLayout3_ASPxFormLayout3_E18')" value="Business" 
type="text" style="background-color: rgb(192, 224, 206);">

使用jQuery(当然是跨浏览器)可以很容易地完成

$(':input')。在('input',function()上{
$(this.toggleClass('empty',this.value.length==0);
}).触发器(“输入”)
input.empty,textarea.empty{
背景色:#d1d1;
}

您可能需要属性
required
和选择器
:invalid

input[type=“text”]:无效,text区域:无效{
背景色:#d1d1;
}


text
您可以用于
输入中的
占位符
文本区域
输入中的
:焦点

[placeholder=”“],
[值=”]{
背景:红色;
}
[占位符=”“]:焦点,
[值=”“]:焦点{
背景:无
}
占位符

价值
这适用于textarea,但输入文本框不起作用。顺便说一句,我喜欢这些类型的解决方案。
:empty
:blank
只选择没有子元素的元素,而不是空字符串的值您好,我看到您仍然处于活动状态,因此,我想知道您是否找到了针对这种情况的解决方案?(我稍后将删除此注释)DevExpress控件的问题是,输入文本框没有占位符设置。问题已编辑为包含DevExpress输入文本框。@sojim2我刚在你写评论时更新了答案,看一看,使用的占位符或值都是一样的。我尝试了
input[value*=”“]{background:red;}
但仍然没有运气请看我的代码,它不是
input[value*=”“]
而是
input[value=”“]
。您正在添加一个额外的
*
。运行我的代码片段我完整地尝试了你的代码,仍然没有成功。使用Chrome、DevXpress、Web表单。不幸的是,在DevXpress中,放置所需的输入将在输入字段中添加一个星号。出于某些原因,此方法仅适用于textarea。这真的很奇怪,也许webform/devexpress怪癖可以很好地使用,但是您可以尝试使用选择器
$('input,textarea')
instead@adeneo是否可以只更改特定类名输入的背景色?@RainMan-当然,只需执行
$(':input.className')即可
和CSS中的
input.className.empty
等。当然,您可以选择任何名称替换
className
input[type="text"]:empty {
background-color : #d1d1d1; 
}

input[type="text"]:not(:empty) {
background-color : #FFFFFF; 
}