我正在使用JQTransform来设置所有表单元素的样式。是否可以禁用特定元素的样式,让所有其他元素由JQTransform设置样式?
答案 0 :(得分:9)
我已将if( $input.hasClass('ignore') == true ) { return; }
添加到插件的第99行,以忽略class = ignore的任何文本字段。也许这会对你有帮助。
答案 1 :(得分:4)
使用班级jqtransformdone
。它内置于插件中。
答案 2 :(得分:3)
我确认,在发布问题的成员的回复中,mattbee的解决方案对我有用。按照说明,我将代码粘贴在第99行,位于以下行之上:
if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}
对于任何不太明显的人,请粘贴代码 ABOVE 第99行,而不是更换第99行,如下所示:
/*Custom code: Regarding class for elements exceptional to transformation.*/
/*Custom code: http://stackoverflow.com/questions/3727517/jqtransform-exclude-an-element-from-styling*/
if( $input.hasClass('ignore') == true ) { return; }
if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}
我没有看到对mattbee的答案发表评论的选项,所以我以答案的形式提交了它。
编辑:上面的代码将提示jqTransform跳过/排除/忽略/避免输入元素。在我的情况下,我用它来排除type =“text”和type =“image”。但是,将.ignore类应用于我的textarea元素确实排除了不希望的转换,但由于某种原因还排除了我的select元素的转换。请注意,对文本区域的jquery.jqtransfrom.js的编辑是在原始未编辑文档的第201行开始的textarea函数中进行的,而不是从上面代码块中第95行开始的文本字段的函数。
以下是我尝试的示例(放置 ABOVE 第207行):
if( $textarea.hasClass('ignore') == true ) { return; }
重申一下,它有效,但也排除了我选择框的转换,这不是我的意图。
搜索解决方案后,我发现了以下博文: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together
基本上,jqTransform创建的用于替换textarea元素的表被textarea替换或更简单地放置,它撤消了转换:
<!--Undo textarea transformation.-->
<!--Source: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together.-->
<script language="javascript">
jQuery(function(){
jQuery("form.transform table").replaceWith('<textarea></textarea>');
});
</script>
对于那些刚接触jQuery的人,上面的代码将放在文档的头部(即<head>
和</head>
之间)。
答案 3 :(得分:3)
我创建了新的库 - csTransPie - 基于jqtransform - jqtransform是一个很棒的库,但它确实有很多问题,今天css3解决了很多这些问题,我喜欢控件是正常控件和看的想法每个浏览器都一样
https://github.com/pkoretic/csTransPie
这是一项正在进行中的工作,但即使现在它比jqtransform更好(超过一半的代码被重写,许多错误解决了,干净的css ......),你必须承认它......
只需在你想要的元素上使用.transpie类!
答案 4 :(得分:1)
或者您只需在输入中添加 jqtranformdone 类:)
答案 5 :(得分:0)
这里我的版本(版本1.1 06.08.09)跳过输入: 在第497行的jquery.jqtransform.js中编辑它
$('input:submit:not(.hidden), input:reset:not(.hidden), input[type="button"]:not(.hidden)', this).jqTransInputButton();
$('input:text:not(.hidden), input:password:not(.hidden), input[type="email"]:not(.hidden)', this).jqTransInputText();
$('input:checkbox:not(.hidden)', this).jqTransCheckBox();
$('input:radio:not(.hidden)', this).jqTransRadio();
$('textarea:not(.hidden)', this).jqTransTextarea();
$('select:not(.hidden)', this).jqTransSelect()
答案 6 :(得分:0)
您可以简单地将“jqtransformdone”类添加到元素,您想要跳过样式。 希望,它会帮助别人。
答案 7 :(得分:-1)
我知道这是一个非常古老的主题,但我不得不说如果你将额外的类添加到普通表单中它会更合适,并且它不会被转换。 对于输入文本和textarea,添加'jqtranformdone'类,它将返回而不进行转换。 对于复选框,单选按钮和选择使用'jqTransformHidden'类。