当用户填写表单时,有没有办法在 HTML 元素中显示/回显表单值?
我正在创建一个巨大的搜索表单,并希望通过提交按钮添加一个有用的区域,以提醒用户他们将要搜索的内容。
当用户填写表单时,有没有办法在 HTML 元素中显示/回显表单值?
我正在创建一个巨大的搜索表单,并希望通过提交按钮添加一个有用的区域,以提醒用户他们将要搜索的内容。
这是一个简单的示例,说明如何使用 jQuery 复制表单输入的值。
$('input[name=query]').keyup(function() {
$('#query-term').text($(this).val());
});
$('select[name=category]').change(function() {
$('#query-category').text($(this).val());
}).change();
jsFiddle 上的演示。这是我使用的 jQuery 函数的列表。
如果您使用 php 并且服务器(例如 apache)配置在 html/htm/xhtml 文件中启用了内联 php,则可以像这样包含 php:
<..>
<form>
<input>
<?php
echo 'test'
?>
</form>
<..>
同样可以放入 .htm 的 .php 文件中并且可以工作,因为您的服务器很可能只为 .php 文件启用 php 解析。
现在,如果您只想显示用户在页面顶部的某个字段中输入的表单字段值,也许您想要这个:
<form>
<input id="search" value="test" onkeypress="$('#search_field_test').text($(this).val())" >
<..>
<span id="search_field_test">
</form>
您可能还希望查看AngularJS,它允许您执行以下操作:
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<hr>
<h1>Hello {{yourName}}!</h1>
</div>
</body>
</html>
您可以将更改处理程序添加到表单本身 - 各个字段上的更改事件会冒泡(jQuery 确保这一点,即使它不会在旧版 IE 中自然发生) - 然后获取所有非空白值并将它们放入在您的“有用区域”元素中:
$(document).ready(function() {
var $form = $("#yourFormIdHere"),
$formFields = $form.find(":input"),
$helpfulArea = $("#yourOutputElement");
$form.change(function(e) {
$helpfulArea.empty();
$formFields.each(function() {
if (this.value != "")
$helpfulArea.append(this.name + ": " + this.value + "<br/>");
});
});
});
选择:input
器为您提供所有表单控件,但您需要添加一些代码来以不同方式处理复选框和单选按钮,因为您将根据它们的checked
属性而不是它们的value
属性将它们包含在输出中。如您所见,我只是将输入元素名称属性用作输出中的标签,但您可以通过使用关联标签元素(如果有)中的文本来美化这一点,或者添加一个data-displayName=...
属性或其他任何东西。但这应该足以让你开始......
演示:http: //jsfiddle.net/nnnnnn/3VB6G/