2016-07-25 1 views
-5

私はJavaScriptからpercent-signasp:textboxにテキストを追加し、文字列にエスケープ%にしようとするように求めてきたjQueryのタグ入力ASPにタグを追加:パーセント記号値不明なエラーとプロンプトからのテキストボックス:構文エラー、認識できない表現:%

<asp:TextBox ID="txtValue" Enabled="true" CssClass="form-control" TextMode="MultiLine" Rows="5" runat="server"></asp:TextBox> 


    sql = prompt("Enter Condition"); 
       if (sql != null) { 
        var sqlcode = cond.concat(" like ", " \'\%]", sql, "\%\' "); 
        $('#<%= txtValue.ClientID %>').addTag(sqlcode); 
       } 

が、これはまだ初期化してくれ

Uncaught Error: Syntax error, unrecognized expression: %test%

jquery-tags-inputを示す

<script> 
     function onAddTag(tag) { 
      alert("Added a tag: " + tag); 
     } 

     function onRemoveTag(tag) { 
      alert("Removed a tag: " + tag); 
     } 

     function onChangeTag(input, tag) { 
      alert("Changed a tag: " + tag); 
     } 

     $(document).ready(function() { 
      $('#<%= txtSQL.ClientID %>').tagsInput({ 
       width: 'auto', 
       'delimiter': [' '], 
       defaultText: "", 
unique:false, 

       onAddTag: function (elem, elem_tags) { 
        var languages = ['or', 'and']; 
        $('.tag', elem_tags).each(function() { 
         if ($(this).text().search(new RegExp('\\b(' + languages.join('|') + ')\\b')) >= 0) 
          $(this).css('background-color', 'blue'); 
        }); 
       }, 
       onChange: function (elem, elem_tags) { 
        var languages = ['or', 'and']; 
        $('.tag', elem_tags).each(function() { 
         if ($(this).text().search(new RegExp('\\b(' + languages.join('|') + ')\\b')) >= 0) 
          $(this).css('background-color', 'blue'); 
        }); 
       } 


      }); 

    }); 
</script> 

これは私が文字列にそれらをエスケープすることができますどのように'Singlequoteすぎ

で起こった、私は二重のバックスラッシュ\\を使用しようとするが、それはちょうど私が値を使用することはできません入力されたIDのメタ文字のために使用しています。私は私のソリューションを解決

+2

これは、万が一の有効なIDではありません。これは、サーバー側の一部の人によって前処理されていれば有効なIDになる可能性がありますが、バックスラッシュはこれを達成できません。 .jsファイルを提供している場合、サーバーは何らかの形でそれを最初に変換するはずです。 –

+0

テキスト入力にテキストを追加しようとしましたが、同じエラーがあります:) @JanDvorak –

答えて

0

これらのprocの

onAddTag: function (elem, elem_tags) { 
    var languages = ['or', 'and']; 
    $('.tag', elem_tags).each(function() { 
     if ($(this).text().search(new RegExp('\\b(' + languages.join('|') + ')\\b')) >= 0) 
      $(this).css('background-color', 'blue'); 
    }); 
}, 
onChange: function (elem, elem_tags) { 
    var languages = ['or', 'and']; 
    $('.tag', elem_tags).each(function() { 
     if ($(this).text().search(new RegExp('\\b(' + languages.join('|') + ')\\b')) >= 0) 
      $(this).css('background-color', 'blue'); 
    }); 
} 

を削除することにより、その後、それは魅力のように働いた:)

関連する問題