无法在javascript中获取<asp:hiddenfield>值</asp:hiddenfield>

时间:2014-01-09 08:49:19

标签: javascript jquery asp.net

我将值分配给隐藏字段,我想在JavaScript中访问该值。

我的声明部分是:

<asp:HiddenField ID="chkImages" runat="server" />
<div id="main" runat="server" style="display:none;"></div>
<a id="NewsTitle" runat="server" class="specialNews-label"></a>

我的JavaScript代码是:

$(document).ready(function () {
    $( "#bxsliderid" ).parent().css( "display", "block" );
    $('.bxslider').bxSlider({
        controls:false,
        pager:false,
        auto:true,
        speed: 9000,   
        easing: 'linear', 
        mode: 'fade',
        pause: 5000,
    });

    if(document.getElementById('<%= chkImages.ClientId%>').value == "1") {
        $( ".specialNews-label" ).css( "display", "block" );
    }
});

我打开页面并在Firebug中看到隐藏字段已呈现但我没有得到它的值,而在调试JavaScript时出现错误,如:Unable to get property 'value' of undefined or null reference

我错过了什么?

6 个答案:

答案 0 :(得分:1)

请在下面试试......工作正常......它

<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function () {
            alert($('#chkImages').val());
            if ($('#chkImages').val() == "1") {
                $("#NewsTitle").css('display', '');
            }
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:HiddenField ID="chkImages" runat="server" Value="1" />
        <div id="main" runat="server" style="display: none;">
            Test
        </div>
        <a id="NewsTitle" runat="server" style="display: none" class="specialNews-label">AAAA</a>
    </div>
    </form>
</body>

答案 1 :(得分:1)

您无需更改HTML代码中的任何内容,只需更改您的javascript,如下所示:

在你的Jquery代码中:

$(document).ready(function () {
    $( "#bxsliderid" ).parent().css( "display", "block" );
    $('.bxslider').bxSlider({
        controls:false,
        pager:false,
        auto:true,
        speed: 9000,   
        easing: 'linear', 
        mode: 'fade',
        pause: 5000,
    });

    if($("input[type='hidden'][id$='chkImages']").val() == "1") {
        //alert('test');
        $( ".specialNews-label" ).css( "display", "block" );
    }
});

请参阅渲染HTML的演示:

JS Fiddle

答案 2 :(得分:0)

嘿兄弟有信件问题

试试这个-----

ClientID而非ClientId

答案 3 :(得分:0)

试试这个

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyForm.aspx.cs" Inherits="TestApp.MyForm" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:HiddenField ID="hdnField" runat="server" />
    </div>
    </form>

    <script type="text/javascript">
        $(document).ready(function () {
            alert($("#<%= hdnField.ClientID %>").val());
        });
    </script>
</body>
</html>

答案 4 :(得分:0)

在代码中使用.attr('value')而不是.value。由于您似乎正在使用jQuery,因此可以执行此操作。

$(document).ready(function () {
    if ($('#chkImages').attr('value') == "1") {
        alert("Working...");
    }
});

http://jsfiddle.net/zW3fj/

答案 5 :(得分:0)

在我的情况下,检查ID是相同的,它是my_id

JS

document.getElementById('my_id').value == "1"

html

<input name="image_name" id="my_id" type="hidden" value="1"/>