带有花括号的字符串时无法识别的表达式

时间:2016-05-13 13:58:44

标签: javascript jquery

我有一个页面,其中一个隐藏的输入框是这样的:

<input type="hidden" name="RequestID" id="RequestID" value="{834b3866-6373-4f2d-8e0b-f28da66c3317}" />

在我的jquery中我想得到像

这样的RequestID
$('#btnGetId').on('click', function(){
   var reqID = $('#RequestID').val();
   alert(reqID);
});

运行代码时我的控制台说:

  

无法识别的表达{834b3866-6373-4f2d-8e0b-f28da66c3317}

这是因为花括号,所以我尝试了这个

var reqID = $('#RequestID').val(); reqID.replace(/[{}]/g, '\\$&');

当我运行代码时,我的警报说:

  

[object,object]

我需要的是在警报框中输入指南{834b3866-6373-4f2d-8e0b-f28da66c3317},但我不知道我做错了什么。

2 个答案:

答案 0 :(得分:0)

在我的原始代码中:

$('#btnGetId').on('click', function(){
   var reqID = $('#RequestID').val();
   alert($(reqID));
});

我已将其更改为

$('#btnGetId').on('click', function(){
   var reqID = $('#RequestID').val();
   alert(reqID);
});

现在它正在运作。

答案 1 :(得分:-1)

尝试使用data -...属性而不是value:

Html变为:

<input type="hidden" name="RequestID" id="RequestID" data-val="{834b3866-6373-4f2d-8e0b-f28da66c3317}" />

js成为:

$('#btnGetId').on('click', function(){
   var reqID = $('#RequestID').attr("data-val");
   alert(reqID);
});

在这里演示:

https://jsfiddle.net/7c48867q/3/