getElementById不返回隐藏的字段值

时间:2014-06-05 01:01:34

标签: javascript jquery jquery-mobile

我们的是基于struts 1.4的应用程序,我们正在使用jQuery Mobile。

当出现业务异常时,我们会重新显示包含异常消息的页面。

但是,我设置了一个隐藏变量,我将使用它来确定要显示的单选按钮和文本字段。

然而,当我尝试访问这个隐藏变量时,我总是得到未定义。

当我看到页面时 - >查看 - >资源。我可以看到隐藏变量及其值。

我尝试了一个简单的代码:

document.getElementByID('test');

不返回任何内容。

有没有人遇到过类似的问题?请帮忙。

4 个答案:

答案 0 :(得分:1)

document.getElementById('test')(注意小写D)

答案 1 :(得分:0)

如果你正在使用jQuery,请使用jQuery。并将其包装在document.ready中,以便在DOM元素存在之前它没有运行。

$(function() { // shorthand for document.ready
    // get the value of the element, not the element's object
    var myHiddenVar = $('#test').val(); 

    // spit it out
    alert(myHiddenVar); 
});

答案 2 :(得分:0)

您可以使用像

这样的jquery代码
var myVar = $('#test').val();

答案 3 :(得分:0)

谢谢大家的回复。抱歉打字错误。是。我的意思是document.getElementById('test')中的小写'd'。

我发现了问题。当我使用Jquery mobile时,我需要在表单提交时禁用AJAX。我刚刚在jquery核心之后和jquery mobile之前添加了下面的脚本,它就像一个冠军。我使用了firebug,并注意到当从后端重新加载错误消息页面时,会创建两个“div”标记。其中一个div中的一个隐藏字段具有值,另一个div中的一个隐藏字段没有值,但两者具有相同的ID。禁用AJAX后,只有div标签,只有一个Id元素,因此它可以工作。

<script type="text/javascript">
$(document).bind("mobileinit", function()
{
  $.extend(  $.mobile , {
      ajaxEnabled: false
  });
});
</script>