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;
}