5

listmenu以外で機能しているuniformjsフォームコントロールを使用しています。リストメニューに「&」記号(&)を追加すると正しく表示されますが、値を別の値に変更して&、リスト内の「&」記号の代わりに&記号が表示される値を再度選択すると問題が発生しますメニュー。 ここに画像の説明を入力してください

ここに画像の説明を入力してください

<select>
<option>Through &amp; Google</option>
<option>Through Twitter</option>
<option>Other&hellip;</option>         
<option>&lt;Hi&gt;</option>
</select>

http://uniformjs.com/#example

誰かが私に何が問題なのか教えてもらえますか。

4

3 に答える 3

4

ディドラーによれば、ユニフォームを少し変更してみませんか?

私は最近同じシナリオに遭遇しました。その場所を見つけるための時間を大幅に節約できる正確な線を指摘してくれたDidlerに感謝します。

私の場合、次のような特殊文字で構成される値を持つ選択があります。

<option>aaa</option>
<option><a>bbb<br>ddd<hr>ccc</option>

そのため、185行目のコードを次のように変更します。

spanTag.text(elem.find(":selected").text());

これにより、値をレンダリングするときに正しい形状になるという問題が解決されます。

opのシナリオでは、使用しているサーバー側の言語はわかりませんが、htmlページを生成する前にオプション内のテキストをエスケープして、&amp;htmlに文字自体が含まれないようにする方法は確かにあります。私はJavaを使用しているので、JSTLを使用<c:out value="${******}"/>してオプションタグに値を入れることができます。

于 2012-02-29T03:01:34.560 に答える
4

4行のコード(行173、185、212、および569)を更新して、使用する代わりにを使用するプルリクエスト(130)があります。私が見た後の2つのプルリクエストは、4行すべてを更新していないようです。.html().text()

縮小版も更新したい場合は、次の2つのスニペットを検索できます。

  • l.html(n.html()(x1-'html'の2番目のインスタンスを変更します)
  • :selected").html((x3-'html'のインスタンスのみを変更します)
于 2012-07-13T15:30:10.390 に答える
3

問題はこの行(ソース-行185)から来る可能性があると思います:

spanTag.text(elem.find(":selected").html());

次のhtmlがある場合:

<select>
    <option>One &amp; Two</option>
    <option>One & Two</option>
</select>
  1. プラグインは、HTMLとしてコンテンツを取得しますelem.find(":selected").html()

    両方のオプション要素は、htmlを取得するときにこの値を返します。One &amp; Two 特殊文字はhtmlエンティティで表されます(この例&amp;&は)

  2. 次に、プラグインはこの結果をテキストとして適用しますspanTag.text(<html>);

    したがって、htmlエンティティは解析されません(&amp;として表示されます&amp;

このフィドルはそれを示しています。

&...のような特殊文字を使用しないことを除いて、それに対する解決策はないと思います。

于 2012-01-11T10:10:29.327 に答える