2011-11-04 54 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()將返回空字符串)。

相關問題