2011-05-03 49 views
0

我试图得到包含JSON,Ajax请求被加载后隐藏的表单值...试图让AJAX请求后隐藏的价值

奇怪的是,jQuery的看到隐藏的价值,这是刚刚通过AJAX加载中...但它不能获得的价值:

if ($("#json_nav").length) { 

alert('element is there!'); 

var j = $("#json_nav").val(); 

alert(j); //is empty 

} 

我#json_nav如下:

<input type='hidden' id='json_nav' value='{"c_type":3,"c1":"1","c2":"617","c3":"769"}'/> 

我的代码正在与没有Ajax请求....和我已确认t他隐藏的价值正在返回ajax请求...但不能得到的价值...

+0

我不能得到同样的错误,personnally“警报(j);”显示“{”c_type“:3,”c1“:”1“,”c2“:”617“,”c3“:”769“}”。 – 2011-05-03 09:55:34

+0

同样我得到警报权。 – arma 2011-05-03 09:56:00

回答

2

我的猜测是,你有一个不同的元素与页面上的id“json_nav”,所以你检索第一个的价值,而不是新的价值。

这里是我的意思的例子:

<div id='theText'>A div with the id "theText"</div> 
<input type='text' id='theText' value='a field with the id "theText"'> 

Live copy

这是无效的(id值必须是唯一的),但它是一个容易犯的错误。当你用ID查看事物时,浏览器通常会给你第一个浏览器,但当然不可能确定浏览器可以随意使用无效文档来做他们想做的事情。

+1

阿哈你是对的... json_nav是在内容div之外,因此它并没有被ajax请求取代... //很好的调用..没想到检查我的html第二个json_nav;)谢谢 – jason 2011-05-03 10:05:38

+0

@jason:不用担心,很高兴帮助。 – 2011-05-03 10:06:20