3

みんな私は自分のコードに問題があり、javascriptでhtml入力タイプのテキストボックスの値を取得し、隠しフィールドに値を割り当てたい.その後、C#のコードビハインドファイルで隠しフィールド値を使用したいが、隠しフィールドには常に空が含まれるstring inputtype テキストボックスに値が含まれている場合でも。私のJavaスクリプト:

 <script type ="text/javascript" >
        function myFunction() {
            var str1 = document.getElementById("amt3").value;
            var str2 = document.getElementById("amt4").value;
            document.getElementById("hf1").value = str1;
            document.getElementById("hf2").value = str2;
        }
    </script>

私のHTML:

<div class="form-row row-fluid">
    <div class="span12">
        <div class="row-fluid">
            <label class="form-label span4" for="slider">
                Range slider</label>
            <div class="span8">
                <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate >
                      <asp:HiddenField ID="hf1" runat="server" />
                      <asp:HiddenField ID="hf2" runat="server" />
                <div id="slider-range"    class="slider" >
                </div>
                <input type="text" id="amount1" style="border: 0; color: #ED7A53; font-weight: bold;
                    box-shadow: none;" />
                <input type="text" id="amt3" value="10" runat="server"     style="border: 0; color: #ED7A53; font-weight: bold;
                    box-shadow: none;" />
                <input type="text" id="amt4"  value="20" runat="server"    name="amt4" style="border: 0; color: #ED7A53;
                    font-weight: bold; box-shadow: none;" />
                    <asp:LinkButton ID="lnk" runat="server" onclick="lnk_Click" OnClientClick ="myFunction()">LinkButton</asp:LinkButton>
                    </ContentTemplate>
                </asp:UpdatePanel>
4

3 に答える 3

2

ClientIDMode が静的に設定されていない場合、生成された html でサーバー コントロール (属性 runat="server" を持つ) の ID が変更されるため、javascript で ClientID を使用する必要があります。

var str1 = document.getElementById("<%= amt3.ClientID %>").value;
var str2 = document.getElementById("<%= amt4.ClientID %>").value;
document.getElementById("<%= hf1.ClientID %>").value = str1;
document.getElementById("<%= hf2.ClientID %>").value = str2;
于 2013-03-29T06:38:29.390 に答える
1

非表示のフィールドテキストボックスはどちらもサーバー側のコントロールであるため、ClientID を使用してアクセスする必要があります。

        var str1 = document.getElementById("<%= amt3.ClientID %>").value;
        var str2 = document.getElementById("<%= amt4.ClientID %>").value;

        document.getElementById("<%= hf1.ClientID %>").value = str1;
        document.getElementById("<%= hf2.ClientID %>").value = str2;
于 2013-03-29T06:42:18.537 に答える
0

実際の例:

ASPコントロールなしで動作するように少し修正しました。

http://jsbin.com/aqayan/1/

問題はサーバー側とクライアント側の ID です。ブラウザですべての ID が正しいことを確認する必要があります。Chrome Web ツールを開き、要素がコンソールにあると思われる ID を持っていることを手動で確認します。

于 2013-03-29T06:43:02.890 に答える