我正在使用 JQTransform 来设置所有表单元素的样式。是否可以禁用特定元素的样式,而让所有其他元素由 JQTransform 设置样式?
8 回答
我已添加if( $input.hasClass('ignore') == true ) { return; }
到插件的第 99 行以忽略任何带有 class=ignore 的文本字段。也许这会对你有所帮助。
使用类jqtransformdone
。它内置于插件中。
我确认 mattbee 的解决方案对我有用,而不是发布问题的成员的回复。按照指示,我将代码粘贴在第 99 行,位于以下行上方:
if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;}
对于不明显的任何人,将代码粘贴到第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 元素确实排除了不需要的转换,但由于某种原因另外排除了我的选择元素的转换。请注意,文本区域的 jquery.jqtransfrom.js 编辑是在从原始未编辑文档的第 201 行开始的 textarea 函数中进行的,而不是在上述代码块中从第 95 行开始的文本字段的函数中进行的。
这是我尝试的示例(位于第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>
)。
我创建了一个新库 - csTransPie - 基于 jqtransform - jqtransform 是一个很棒的库,但它确实有很多问题,今天 css3 解决了许多这些问题,我喜欢控件是普通控件并且看起来相同的想法每个浏览器
https://github.com/pkoretic/csTransPie
这是一项正在进行的工作,但即使现在它也比 jqtransform 更好(重写了一半以上的代码,解决了许多错误,干净的 css ......),你必须承认......
只需在您想要的元素上使用 .transpie 类!
或者您可以简单地将jqtranformdone类添加到您的输入中:)
在这里我的版本(版本 1.1 06.08.09)跳过输入:在 jquery.jqtransform.js 中编辑它在第 497 行
$('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()
您可以简单地将“jqtransformdone”类添加到元素,您想跳过样式。希望,它会帮助别人。
我知道这是一个非常古老的话题,但是我不得不说,如果您在正常形式中添加额外的类,它会更合适,并且不会被转换。对于输入文本和文本区域,添加“jqtranformdone”类,它将不经转换返回。对于复选框、单选按钮和选择,请使用“jqTransformHidden”类。