2011-11-04 30 views
2

在下面的功能,代码应该采取的参数,使用jQuery,我如何设置隐藏字段的值并读取它以确认它已正确设置?

1)显示与参数值
2)警报的值保存到隐藏字段
3)显示与读出的值的警报隐藏的领域。

第1步工作。我无法确认第2步发生,第3步返回'未定义'。

第一个警报显示正确的ID - 传递给SaveReportId()的ID。

第二警报显示 “之后SaveReportId()保存:未定义”

function SaveReportId(selectedReportId) { 
    alert('SaveReportId() before save: ' + selectedReportId); 
    $('#HiddenReportId').val(selectedReportId); 
    alert('SaveReportId() after save: ' + $('#HiddenReportId').val()); 
} 

HTML:

<div class="hiddenValues"> 
    <input id="HiddenReportId" type="hidden" runat="server" class="HiddenReportId" /> 
</div> 
+2

您能否包含您的HTML?导致它在这里工作http://jsfiddle.net/manseuk/Pjydr/ – ManseUK

+0

你是怎么调用这个函数的? – Neal

+0

你的输入元素是什么样的?我猜你有一个名称已定义,但不是一个ID或你的ID有一个类型 - 0 – scrappedcola

回答

0

隐藏的字段具有runat =“server”属性。我删除它,代码运行良好...

function SaveReportId(selectedReportId) { 
    alert('SaveReportId() before save: ' + selectedReportId); 
    $('#HiddenReportId').val(selectedReportId); 
    alert('SaveReportId() after save: ' + $('#HiddenReportId').val()); 
} 
+0

所以,元素不存在。为了得到一个值,**从不**使用'.attr('value')',而是'.val()'。 –

+0

@Rob W - 我将val()更改为attr()试图让事情发挥作用。现在使用val()和上面的Prod代码被更新。 – DenaliHardtail

2

没有与ID HiddenReportId没有元件(因此undefined使用.val()时)。确保您正确拼写了该ID。

当元素不存在时,jQuery不会生成错误。
在第三行,没有任何反应(因为找不到元素)。
在第四行,.val()返回undefined,因为找不到该元素,因此.value()没有任何意义。

要确认元素不存在,请添加alert($('#HiddenReportId').length)

(如果该元素存在,则.val()将返回空字符串)。

相关问题