javascript - 在 Jquery 对话框弹出窗口中填充表单元素

标签 javascript jquery jquery-ui-dialog

我是 Jquery 的新手,或者至少是 Jquery 的更高级功能的新手。几天来,我一直在试图断断续续地解决这个问题,我开始让自己感到慌张。

我所拥有的是我们使用 HTML 只读文本框来显示结果的页面。文本框由 php 通过 sql 搜索填充。然而,对于这个例子,我已经预设了 PHP 变量来解决这个问题。

我正在尝试根据 php 变量填充对话框中的表单字段。我已经精简了我的测试代码,希望它能 self 解释。这是主页的代码:

<?php
$Test1 = 'Test';
$Test2 = 'TestTest';
$Test3 = 'TestTestTest';
$Test4 = 'TestTestTestTest';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/jquery-ui-1.8.13.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script>
<title>Untitled Document</title>

<script>
  $(document).ready(function() {
    $('#popout1 a').each(function() {
        var $link = $(this);
        var $dialog = $('<div></div>') 
            .load($link.attr('href') + '#formTest' )
            .dialog({
                autoOpen: false,
                title: $link.attr('title'),
                width: 600,
                height: 400,
                modal: true,

        });

$link.click(function() {
    $dialog.dialog('open');
    $dialog.parent().appendTo($("#formTest"));
    return false;
    });
    });
}); 
</script>

</head>

<body>
<div id="formTest">
<form name="formTest" id="formTest">
<table>
    <th>Test</th>
        <tr>
            <td><label for="Test1">Test1:</label></td>
            <td><input type="text" readonly="readonly" name="Test1" value="<?php echo $Test1?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test2">Test2:</label></td>      
            <td><input type="text" readonly="readonly" name="Test2" value="<?php echo $Test2?>" /></td>
        </tr>
        <tr>
        <td id="popout1"><a href="popoutTest.php" title="Popout Test">Click here for more data</a></td>
        </tr>
</table>
</form>
</div>
</body>
</html>

这是弹出页面的代码:

    <table>
    <th>More Tests</th>
        <tr>
            <td><label for="Test3">Test3:</label></td>
            <td><input type="text" readonly name="Test3" value="<?php echo $Test3 ?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test4">Test4:</td>      
            <td><input type="text" readonly name="Test4" value="<?php echo $Test4 ?>" /></td>
        </tr>
</table>

我的问题是如何使用主页上声明的 php 变量填充弹出页面上的 test3 和 test4 文本框。

最佳答案

将输入的名称属性更改为 id。

<table>
    <th>More Tests</th>
        <tr>
            <td><label for="Test3">Test3:</label></td>
            <td><input type="text" readonly id="Test3" value="<?php echo $Test3 ?>" /></td>
        </tr>       
        <tr>
            <td><label for="Test4">Test4:</td>      
            <td><input type="text" readonly id="Test4" value="<?php echo $Test4 ?>" /></td>
        </tr>
</table>

然后您可以使用 jQuery 找到它们。

$('#Test3').val('the new value');
$('#Test4').val('the other new value');

编辑:您需要将 php 值保存在主页的某处,以便在显示弹出窗口时它们可用。

关于javascript - 在 Jquery 对话框弹出窗口中填充表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6527247/

相关文章:

javascript - 下拉列表上的 knockout validation 始终显示错误消息

javascript - onchange 请求期间 DOM 操作(blockUI 或alert())出现问题 - 阻止其他事件触发

asp.net - 从用户控件内部添加到页面控件集合

javascript - 监视目录中的新文件时 CPU 使用率较高

javascript - 如何获取此动态表中最后两列的列总和

javascript - Bootstrap Typeahead local, prefetch, or remote 是必需的

javascript - 根据总数和奇偶数分割JSON对象

jQuery、MVC3 : Submitting a partial view form within a modal dialog

javascript - 如何删除 jQuery-ui 对话框标题栏?

javascript - 简单的 slider 语法和其他可能的错误