0

js から codebehind に情報を渡そうとしています。js の最後にブレークポイントを設定する場合 - (Firefox)デバッガー(-js) はinputの値設定されていることを示しますが、(Firefox)インスペクター(-html) は設定されていないことを示します。コードビハインドに到達したとき-設定されていません。なんで?

jsで値を設定し、コードビハインドを呼び出すボタンをクリックします。

<script type="text/javascript">
    function doit(s, input, button)
    {
        var i = document.getElementById(input);
        i.innerHTML = s;
        var b = document.getElementById(button);
        b.click();
    }       
</script>

非表示の入力とボタン (コードビハインドを呼び出すため) と、これらすべてを開始するためのボタン、および結果を表示するための div を含むhtml :

<asp:Button ID="Button1" runat="server" Text="Test" OnClick="Button1_Click" />
<div style="display: none;">
    <input id="info" runat="server" />
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" />
</div>
<div id="result" runat="server">
</div>

js を呼び出して結果を表示するためのC# コードビハインド:

protected void Button1_Click(object sender, EventArgs e)
{
    ClientScriptManager cs = Page.ClientScript;
    Type pageType = GetType();
    cs.RegisterStartupScript(
        GetType(),
        "aName",
        "doit('abc', '" + info.ClientID + "','" + Button2.ClientID + "');", 
        true);
}

protected void Button2_Click(object sender, EventArgs e)
{
    result.InnerText = info.Value;
}
4

2 に答える 2

3

value代わりに入力のプロパティを設定する必要がありますinnerHTML

変化する

i.innerHTML = s;

i.value = s;
于 2013-10-01T17:30:42.997 に答える
2

value入力の値を設定するために使用したい:

function doit(s, input, button) {
    document.getElementById(input).value = s;
    var b = document.getElementById(button);
    b.click();
}       
于 2013-10-01T17:30:31.853 に答える