0

テキスト ボックスの値が既に html エンコードされているかどうかを確認する方法はありますか。

ページの検証のために、テキストボックスからフォーカスを合わせて次のコードを使用しています。

    $(document).ready(function() {
        $('#txtLink').focusout(function(){
            $('#txtLink').val(htmlEncode($('#txtLink').text()));
        });
    });
    function htmlEncode(value){
        if (value) {
            return jQuery('<div />').text(value).html();
        } 
        else {
            return '';
        }
    }

    function htmlDecode(value) {
        if (value) {
            return $('<div />').html(value).text();
        } 
        else {
            return '';
        }
    }

テキストボックスまたはalt + tabから他のウィンドウなどへのフォーカスごとに...テキストは複数回エンコードされています。いくつかの提案が必要です。

前もって感謝します

4

1 に答える 1

0

クライアント側とサーバー側の取り組みを混同していると思います。サーバー側でたまたま HTML エンティティを含む要素の val を設定する場合、すべてのテキストが値の一部であり、新しいマークアップではないことを認識する必要があるため、それをエンコードする必要があります。クライアント側の場合、値を設定するだけです。たとえば$('#txtLink').val('<div>Hello <span>World</span></div>')、設定または取得(または投稿)にエンコード/デコードは必要ありません

于 2013-02-08T14:33:10.003 に答える