1

隠しフィールドに続くaspxページがあります

<asp:HiddenField ID="hdnObjectID" runat="server" />

外部のJavaScriptファイルでhiddenfieldの値を取得したい。このコードを使用してhdnObjectIDの値を取得しました

var objectID = parseInt($('#' + '<%= hdnObjectID.ClientID %>')[0].value);

しかし、それは価値を得ていません。

4

7 に答える 7

0

Javascriptで次のことを試してください。varobjectID=parseInt(document.getElementById('hdnObjectID')。value);

于 2012-07-31T09:47:35.770 に答える
0

外部JSファイルに書き込まれている場合、サーバー変数にアクセスすることはできません。私はこのスレッドでこの理由を説明しました

aspxページで、グローバルjavascript変数を宣言します

var hdnTextBox = <%= hdnObjectID.ClientID %>;

この変数を外部ファイルで使用します。

asp.net 4.0を使用している場合は、コントロールのクライアントIDを制御できます。それを制御する方法については、ここを参照してください

もう1つのオプションは、ヘルプScriptManager.RegisterStartupScriptを使用してサーバー側からJSを作成することです。page_loadに次のコードを記述します

 ScriptManager.RegisterStartupScript(this, GetType(), "SomeName","SomeFunc("          +hdnObjectID.ClientID + ");", true);

および外部ファイル

function SomeFunc(hdnObjectClientId){
 //
}

クライアントIDを関数に渡します

于 2012-07-31T09:48:44.420 に答える
0

<%= hdnObjectID.ClientID %>これらのサーバー側の式は外部のjsファイルで評価されないため、外部のjsファイルで使用することはできません。

ただし、ページに関数を作成して、その非表示フィールドから値を取得することはできます。

于 2012-07-31T09:48:59.567 に答える
0

JavaScriptファイルでサーバーコードを評価することはできません。

静的クライアントIDを使用する場合は、外部ファイルに値を安全にハードコーディングできます。それ以外の場合は、ページからJavaScriptメソッドへの引数として渡します。

// in file
function foo(clientId){
    var element = document.getElementById(clientId);
}

<%-- in page markup -->
<script>
    foo("<%=hdnObjectId.ClientID %>");
</script>


// or, register in codebehind in OnPreRender (or where suitable)
于 2012-07-31T09:51:19.520 に答える
0

外部JavaScriptでこれを試してください

var Controls = null; 
function readHidden(){alert(Controls.hdn_val.value);}     

.aspxファイル内

<script type="text/javascript" src="myexternal.js"></script> 
<script type="text/javascript"> 
Controls = {hdnfld = '<%=hdn_val.ClientID %>'};
</script>
于 2012-07-31T10:41:40.977 に答える
0

findElement javascriptメソッドで「hdnObjectID」を渡して、オブジェクトを取得します

<script type="text/javascript">

    function findElement(e) {
        var foundElement = null;

        var elements = window.document.forms[0].elements;

        for (i = 0 ; i < elements.length; i++) {
            if (elements[i].id.indexOf(e) > -1) {
                foundElement = elements[i];
                break;
            }
        }

        return foundElement;
    }
 </script>

このメソッドは、mayching名を持つオブジェクトを返します。ただし、このメソッドと同じ名前のオブジェクトが2つある場合は、変更が必要になります

これがお役に立てば幸いです:)

于 2012-08-26T11:44:29.177 に答える
0

これを試して:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Assign", "assignValues('"+ hdnSchedule.Value +"');", true);
于 2014-09-03T10:58:10.403 に答える