6

我正在使用 JQTransform 来设置所有表单元素的样式。是否可以禁用特定元素的样式,而让所有其他元素由 JQTransform 设置样式?

4

8 回答 8

9

我已添加if( $input.hasClass('ignore') == true ) { return; }到插件的第 99 行以忽略任何带有 class=ignore 的文本字段。也许这会对你有所帮助。

于 2011-03-03T16:22:52.797 回答
4

使用类jqtransformdone。它内置于插件中。

于 2012-09-23T23:36:40.883 回答
3

我确认 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>)。

于 2011-04-25T18:02:38.443 回答
3

我创建了一个新库 - csTransPie - 基于 jqtransform - jqtransform 是一个很棒的库,但它确实有很多问题,今天 css3 解决了许多这些问题,我喜欢控件是普通控件并且看起来相同的想法每个浏览器

https://github.com/pkoretic/csTransPie

这是一项正在进行的工作,但即使现在它也比 jqtransform 更好(重写了一半以上的代码,解决了许多错误,干净的 css ......),你必须承认......

只需在您想要的元素上使用 .transpie 类!

于 2012-01-31T12:37:18.587 回答
1

或者您可以简单地将jqtranformdone类添加到您的输入中:)

于 2011-10-19T12:12:06.993 回答
0

在这里我的版本(版本 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()
于 2012-08-25T12:30:27.477 回答
0

您可以简单地将“jqtransformdone”类添加到元素,您想跳过样式。希望,它会帮助别人。

于 2013-02-12T11:43:20.780 回答
-1

我知道这是一个非常古老的话题,但是我不得不说,如果您在正常形式中添加额外的类,它会更合适,并且不会被转换。对于输入文本和文本区域,添加“jqtranformdone”类,它将不经转换返回。对于复选框、单选按钮和选择,请使用“jqTransformHidden”类。

于 2012-05-03T11:26:49.053 回答