1

何らかの理由で、モーダル ダイアログ ボックスによって返される値は常に「未定義」です。

私のメインページ (aspx):

<%@ Page Title="Home Page" Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<html>
<head></head>
<body>

<script type="text/javascript">

function openWindows () {
    var getval;
    getval = window.showModalDialog('../WebSite/popups/uploader.htm');
    document.getElementById("Input").value = getval;
   }
</script>

<input id="Input" runat="server" />
<input type="button" id="Button1" runat="server" onclick="openWindows()" value="Choose Image"/>
</form>
</body>
</html>

したがって、この場合、getval の値は常に「未定義」です。

マイ ダイアログ ボックス (HTML) コード:

<html>
<head>
    <script type="text/javascript">
        function ReturnValues() {
            var objfile = document.getElementById("fileup").value
            document.getElementById("TxtInput").value = objfile
            var vReturnValue = document.getElementById("TxtInput").value;
            window.ReturnValue = vReturnValue;
            window.close();
        }

    </script>
</head>
<body>
    <form id="Formuploader" method="post" runat="server">
        <input id="TxtInput" type="hidden" runat="server" /><br />
        <button id="btnSaveImage" runat="server" onclick="ReturnValues()">Save Image</button>
    </form>
    </body>
    </html>

ここで、ReturnValue には必要な値があります。しかし、ModalDialog が閉じるとすぐに、メイン ウィンドウの getval 変数が未定義になります。

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

0

これを試して:

window.opener.document.getElementById("Input").value = getval;
于 2012-05-19T04:10:21.537 に答える
0

値を返すときは、次のようにします。

window.returnValue = vReturnValue;

小文字returnValueを使用しないでReturnValueください。

また、モーダル ダイアログが閉じていません。それを修正するには、ボタンをリンクに変更します。

<a href="#" id="btnSaveImage" runat="server" target="_self" onclick="ReturnValue()">
        Save Image</a>
于 2012-05-19T04:08:43.327 に答える