JQTransform を使用して、すべてのフォーム要素のスタイルを設定しています。特定の要素のスタイル設定を無効にして、他のすべての要素を JQTransform でスタイル設定したままにすることはできますか?
8 に答える
if( $input.hasClass('ignore') == true ) { return; }
プラグインの 99 行目に、class=ignore のテキスト フィールドを無視するように追加しました。多分これはあなたを助けるでしょう。
クラスを使用しjqtransformdone
ます。プラグインに組み込まれています。
私は、質問を投稿したメンバーからの応答のレイウで、マットビーの解決策が私のために働いたことを確認しています. 指示に従って、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" を除外するために使用しました。ただし、 textarea 要素に .ignore クラスを適用すると、実際には望ましくない変換が除外されましたが、何らかの理由で選択要素の変換がさらに除外されました。テキスト領域の jquery.jqtransfrom.js への編集は、上記のコード ブロックの 95 行目から始まるテキスト フィールドの関数ではなく、元の未編集ドキュメントの 201 行目から始まる textarea 関数内で行われたことに注意してください。
これが私が試みたものの例です(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」クラスを使用します。