Asp.net 什么';这是CSS样式,我需要使只读文本框控件看起来被禁用
为了预防“你为什么要这样做”的问题,我回答说: 如果单击了另一个控件,我将进行ajax调用以获取服务器生成的值并将其填充到文本框中。然后,在客户端,我将控件设置为readOnly(我不想禁用控件,因为我需要它进行回发,所以我设置了readOnly属性) 不幸的是,作为只读,它看起来并不是“禁用的” 我想通过执行.addClass来获得禁用的文本框外观 我已经尝试过各种款式,但我还没有接近那个样子 顺便说一句,这将是在IE中(可能是IE7或更低,所以我恐怕没有轮廓样式)Asp.net 什么';这是CSS样式,我需要使只读文本框控件看起来被禁用,asp.net,javascript,css,Asp.net,Javascript,Css,为了预防“你为什么要这样做”的问题,我回答说: 如果单击了另一个控件,我将进行ajax调用以获取服务器生成的值并将其填充到文本框中。然后,在客户端,我将控件设置为readOnly(我不想禁用控件,因为我需要它进行回发,所以我设置了readOnly属性) 不幸的是,作为只读,它看起来并不是“禁用的” 我想通过执行.addClass来获得禁用的文本框外观 我已经尝试过各种款式,但我还没有接近那个样子 顺便说一句,这将是在IE中(可能是IE7或更低,所以我恐怕没有轮廓样式) 感激地接受任何想法。最好的
感激地接受任何想法。最好的方法是以正常方式禁用文本框,然后拍摄页面的屏幕截图并将其加载到图像编辑器程序中,然后获取文本框背景颜色、边框颜色等。然后您可以通过CSS进行设置,如下所示:
input.readOnlyTextBox
{
background-color: #F2F2F2 !important;
color: #C6C6C6;
border-color: #ddd;
}
请记住,尽管不同浏览器的禁用外观可能略有不同,但这将使您获得近似的禁用外观。不同浏览器的禁用表单元素的外观不同。如果你不想让你的网站看起来不一致和邋遢,那么你应该设置所有输入元素的样式,或者至少设置所有复选框的样式-启用、禁用和只读。然后,您可以确定只读输入的外观,而无需尝试匹配四个或五个不同的浏览器 我不想禁用控件,因为我需要它来回发,所以我设置了readOnly属性 将其设置为disabled,并创建一个具有相同名称、包含相同值的隐藏输入,以进行真正的提交
这是一种黑客行为,但在所有浏览器中可靠地获得正确的“禁用”外观的唯一方法是真正使用“禁用”。不同平台、浏览器、设置和主题之间的样式太不一致,您无法可靠地复制它。我可以想出两种方法
我刚玩过。我正在使用JS和JQuery禁用输入项。在一个表单上,我有一个带有“disabler”类的复选框,并且将要禁用的项标记为“disabler”类。
面临与您相同的问题,并使用JQuery DOM操作动态放置和移除隐藏字段解决了此问题。跨浏览器正常工作。
此函数与disabler.onClick和form.onLoad绑定:
$.My.InitDisabler = function() {
if (!$('.disabler').attr('checked')) {
$('.disableable').each(function() {
$(this).attr("disabled", "true");
var templ = '<input name="{0}" type="hidden" value="{1}" class="disable_hdn" />';
$(this).after($.format(templ, $(this).attr("name"), $(this).val()));
});
}
else {
$('.disable_hdn').remove();
$('.disableable').removeAttr("disabled");
}
}
$.My.InitDisabler=function(){
if(!$('.disabler').attr('checked')){
$('.disableable')。每个(函数(){
$(this.attr(“disabled”、“true”);
var templ='';
$(this).after($.format(temp,$(this.attr(“name”),$(this.val()));
});
}
否则{
$('.disable_hdn').remove();
$('.disabled').removeAttr(“禁用”);
}
}
我在一个相关的网站上找到了这条评论:
要使“只读”输入字段看起来像“禁用”字段,请设置'style=“color:grey;background color:#f0;”Dan Nissenbaum 2011年2月28日5:05
我试过了,效果很好
总而言之:
style="color: grey; background-color: #F0F0F0;"
我知道这个问题已经得到了回答,但我想给出我的CSS示例 因为当我搜索解决方案时,如何设置输入字段的样式,使其看起来像是被禁用的,我总是得到这样的输入字段 带边框-左侧和顶部有较深的颜色等。 因此,一个用户使用这个CSS代码解决了这个问题
input[readonly]{
border-color: darkgrey;
border-style: solid;
border-width: 1px;
background-color: rgb(235, 235, 228);
color: rgb(84, 84, 84);
padding: 2px 0px;
}
拍了一张照片,你们可以仔细看看
它在Chrome上看起来不错,在其他浏览器上你需要修改一下颜色。就像在Firefox中一样,您也需要将颜色和背景颜色更改为等
background-color: rgb(240, 240, 240);
color: rgb(109, 109, 109);
是的,我怀疑如果没有大纲风格(IE7似乎不支持),我会很挣扎。正是这种“双”边框让我在造型上遇到了麻烦当然比搞乱CSS要好得多。虽然我们正在进行狡猾的黑客攻击,但您也可以在提交之前启用这些字段。