1

私は次のコードを使用しています:

<div class="example">
    <p> <a href="#info" rel="facebox">View Facebox</a> </p>
    <p>  <input id="Button1" type="button" value="button" onclick="Get_Value();"/></p>  
</div>

<div id="info" style="display:none;">
<p><input id="text1" name="text1" type="text" value="abc"/></p>
<p>  <input id="Button2" type="button" value="button" onclick="Get_Value();$.facebox.close(); return;"/>    </p>                 

<script type="text/javascript">
function Get_Value()
{
 alert($('#text1').val());

 var myTextField = document.getElementById('text1');
 alert("You entered: " + myTextField.value)
}
</script>

問題は、アラートステートメントで、テキストボックスtext1の初期値「abc」を常に取得していることです。ただし、フェイスボックス内で開いたときにユーザーが入力する値はありません。誰か助けてくれませんか?

4

2 に答える 2

0

で試してみてくださいalert($('.content #text1').val());。これは、facebox がテーブルにダイブの「コピー」を作成してその「ボックス」を表示し、同じ ID を保持しているためです (Firebug で発生していることがわかります)。

編集:Firefox、Chrome、およびIE7の例:

<html>
<head>
    <title>unable to get value from textbox used inside a facebox</title>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="facebox/facebox.js"></script>
    <link rel="stylesheet" src="facebox/facebox.css"/>
    <script type="text/javascript">
    jQuery(document).ready(function($) {
        $('a[rel*=facebox]').facebox();
    });

    function Get_Value() {
        alert($('#facebox input:first').val());
    }
    </script>
</head>
<body>
    <div class="example">
        <p><a href="#info" rel="facebox">View Facebox</a></p>
        <p><input id="Button1" type="button" value="button"
                  onclick="Get_Value();"/></p>
    </div>

    <div id="info" style="display:none;">
        <form>
            <input name="text1" type="text" />
            <input type="button" value="button" 
                   onclick="Get_Value();$.facebox.close();"/>
        </form>
    </div>
</body>
</html>
于 2009-11-09T09:15:14.740 に答える
0

うーん、jQuery 1.3.2 を使用すると、リンクをクリックしたときに FaceBox 領域が表示されないようです (非表示のままです)。次の View Facebox リンクを使用して例を少し変更したところ、FaceBox が適切に表示され、ダイアログに現在の情報が表示されます (Safari と Firefox の両方で)。これは役に立ちますか?

<a href="#" onClick="javascript:$('#info').show(); return false;" rel="facebox">View Facebox</a>
于 2009-11-09T08:48:18.480 に答える