javascript - 我需要使用哪个 API 而不是 serializeArray 来获取字段的自定义属性?
问题描述
我正在使用 serializeArray() 来检索表单属性。当我尝试获取属性时,我收到了所有字段的名称和值。
我已经检查了文档https://api.jquery.com/serializeArray/。我知道它将返回所有字段的名称和值。
现在我对某些字段几乎没有自定义属性。我想使用这些自定义属性来检索它们。
我怎样才能做到这一点?
这是我的逻辑。
var data = $('form').serializeArray();
var newData = {};
var queue = {};
data.forEach(function(field) {
if( field.customField != undefined && field.customField.indexOf("true")>=0 ) {
queue[field.name] = frm.value
} else {
newData[frm.name] = frm.value;
}
});
我需要获取该 customField 属性,并将其添加到 HTML 字段属性中。
解决方案
可能不是最好的,但你可以这样做。
假设您有一组文本框、文本区域等,其中包含自定义数据属性。我在这里所做的是向class
您需要在其中获取值/数据属性的那些字段添加一个。
我们以下面的 HTML 为例。
HTML
<form id="frm">
<input class="serialize" type="text" name="title1" value="Test title 1" data-test1="test AAA" data-test2="test BBB" /><br/>
<input class="serialize" type="text" name="title2" value="Test title 2" data-test1="test CCC" data-test2="test DDD" /><br/>
<textarea class="serialize" data-test1="textarea test 1">TEST 22 TEST 11</textarea>
<button id="btn" type="button">Serialize</button>
</form>
我在这里所做的是遍历具有类的字段.serialize
并将值、名称、数据属性等放入数组。
jQuery
$(document).ready(function(){
$('#btn').on('click', function(e) {
var dtarr = new Array();
$(".serialize").each(function(){
var sub = new Array();
sub['name'] = $(this).attr('name');
sub['value'] = $(this).val();
//data attribute example
sub['data-test1'] = $(this).data('test1');
sub['data-test2'] = $(this).data('test2');
dtarr.push(sub);
});
// This will give you the data array of input fields
console.log(dtarr);
});
});
希望这可以帮助。
推荐阅读
- r - 如何分隔不同列中的多项选择短语(谷歌表单)?
- anylogic - 如何编写一个 for 循环来获取整个表的信息
- ruby - nio4r gem 的问题:安装 nio4r (1.2.1) 时出错,Bundler 无法继续
- python-3.x - 如何将数据框从宽转换为长
- graphql-js - watchQuery 如何与 ApolloClient 配合使用
- git - Jenkins Pipeline 和 SSH 密钥 - Git 代理有效,SSH 代理无效
- forms - 双向事件绑定在表单标签Angular 2中不起作用
- python - 气流 Jinja 模板
- python - 为什么我在循环中返回和打印时得到不同的结果?
- html - 按钮超链接问题 HTML/CSS