2016-11-18 27 views
0

私には特殊文字のIDがあります。この入力の値をJQUERYで取得する必要があります。IDと特殊文字(Jquery)

<input style="text-align:center; width:50px;" type="text" onKeyPress="jq(this.id);" value="5" id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG"> 
    <script> 
    function jq(str) { 
     var id = str.replace(/[%#;&,\.\+\@*~':"!\^\$\[\]\(\)=>|\/\\]/g, '\\\\$&'); 
     var value = $("#"+id).val(); 
     alert(value); 
} 
    </script> 

私はこれを試していますが、アラートに応答がありません。 ヘルプ!お願いします!

+1

希望するID ?? – Mahi

+0

入力に含まれる値を – David

+0

にしたいのですが、次にstrの値は何ですか? – Mahi

答えて

0
function jq(str) { 
    var element = document.getElementById("adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG"); 

    var value = $(element).val(); 
    alert(value); 
} 
1

は、通常は特殊文字をエスケープするために、セレクタ、\\にjQueryのエスケープシーケンスを使用することができます。ただし、要素に指定したidに空白が含まれているため無効です。

var $el = $('[id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG"]'); 
 
console.log($el.val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input style="text-align: center; width: 50px;" type="text" onKeyPress="jq(this.id);" value="5" id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG">

彼らは前より良い解決策は、あなたの要素のidを修正するために、次のようになります。あなたはそれを取得するためのjQueryの属性セレクタを使用する必要があります原因と

空白と特殊文字を削除するためにページに出力します。

0

フィドルからの回答を取得here 私は両方のjavacript & jqueryで書いています。 IDの中のすべての特殊文字の前に//オプションを試すオプションがありますが、それは私のためには機能しません。だから、あなたは答えを得ることができます。 &をお知らせください。

$("#clickID").on('click', function(){ 
    getVal = $(document.getElementById('adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG')).val(); 
    console.log(getVal); 
    alert(getVal); 
});