使用jQuery用data-*数据填充表单文本输入
Populating form text inputs with data-* data using jQuery
两天来,我一直在努力解决这个特殊的问题。我觉得我很接近,但我无法破解它。我有一个带有data-*属性的div:
<div class="pull-right" id="actions" data-ph-title="I am a title" data-ph-type="and a type" data-ph-source="from a source" data-ph-subject="with a subject">
例如,当试图提醒"data ph title"的值时,我可以执行以下操作,因为"ph"answers"title"之间的短划线显然被删除了。
var info = $("#actions").data();
alert(info.phTitle);
这很好,而且很有效(提醒:"我是一个标题"),但我真正想要的是用所有这些数据填充某些表单字段。我已经将我的表单字段命名为与信息对象的属性相同,例如:
<textarea id="placeholder-title" name="phName"></textarea>
我正试图想出一个循环,将info对象的所有属性值放入相应的文本输入(或文本区域)。这就是我陷入困境的地方。我目前有以下代码:
var info = $("#actions").data();
$.each(info, function(field, val){
$("[name='" + field + "']").val(val);
});
如有任何帮助,我们将不胜感激!
您的代码是有效的,所以除了没有名为"phName"的字段之外,我真的不知道问题出在哪里。
这应该是您所需要的。遍历JSON对象并填充文本区域:
var info = $("#actions").data();
for (var key in info) {
if (info.hasOwnProperty(key)) {
$("[name='" + key + "']").val(info[key]);
}
}
这里有一个jsFiddle演示了它的工作原理。
在#actions中似乎没有phName。但是在表单元素上使用id呢?
var info = $("#actions").data();
$.each(info, function(field, val){
$("#placeholder-" + field).val(val);
});
和
<textarea id="placeholder-phTitle"></textarea>
<textarea id="placeholder-phSource"></textarea>
...
试试这个:
var fields = $('#myform input, #myform textarea');
for(var i=0; i < fields.length; i++){
var input = fields[i];
if(info[input.name]) input.value = info[input.name];
}
相关文章:
- CasperJS填充表单-输入名称有方括号
- 如何使用多维JSON数据重新填充表单
- 试图用cookie中的信息填充表单
- 如何在刷新时重新填充表单中的复选框并将表单值发布到页面
- 根据url填充表单选择下拉列表
- 从后台用angularjs填充表单
- 根据Rails4中的一个字段自动填充表单
- 使用jQuery用data-*数据填充表单文本输入
- 获取动态行数据值以使用 JavaScript 预填充表单
- 如何从 ng 重复项填充表单
- 如何使用 .ajax 拉取 MySQL 数据并用它填充表单
- 使用 php 变量值填充表单输入字段
- 轨道:填充表单中选择标签的输入
- 如何使用javascript用按钮填充表单列表
- 如何从我的 MySQL 数据库中提取数据以在页面加载时预填充表单
- 选择列表值并自动填充表单域
- 使用来自另一个表单的数据填充表单
- 如何使用 jquery 在同一页面上从数据库记录填充表单
- 基于表单输入值,如何 2 生成选择 4 下拉菜单 w 数据库中的行/记录数据,该数据库将在选择时预填充表单
- 如何使用我要编辑的 html 表中行中的数据填充表单中的输入字段