我正在构建一个多步骤的联系表单(每一步都在一个文章标签中),我使用jQuery map()
将标签和输入值存储到一个数组中,然后在表单的最后一部分,信息被展示。 存储数组的jQuery是这样的:
$("article:last").prev().find("a.next").on("click", function(){ var arr = $('.form-item').map(function() { var lab = $('label', this).text(); var val = $('input', this).val(); return "" + lab + " " + val + " "; }).get() $("article:last ul#results").append(arr.join('')) });
这很好用,但对textareas和select菜单返回“undefined”,这是正确的。 我需要调整此代码以适用于选择项和textareas。 我的HTML非常简单,如下所示:
每篇文章都代表了表单的新部分。 所以问题是,如何调整我的jQuery以支持其他表单元素? 做一个有条件的说法,“如果.form-item
的孩子包含textarea,运行这个代码……等等,这是一个不错的选择。
您可以使用:eq()
选择器, eq(1)
选择div标签的第二个子节点,输入或textarea元素。
var arr = $('.form-item').map(function() { var lab = $('label', this).text(); var val = $(':eq(1)', this).val(); return "" + lab + " " + val + " "; }).get()
你可以写这样的东西:
var arr = $('.form-item').map(function() { var val = $(this).find('input, textarea').val(); return val; }).get();
关于JSFiddle的实例
以上就是jQuery教程分享使用jQuery map()与多种类型的表单元素相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/547466.html