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”;但不是用户在 facebox 内打开时输入的任何值。有人可以帮我吗?

4

2 回答 2

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 回答
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 回答