需要使用 jquery 对具有部分文本字段名称的值进行匹配并返回结果

Posted

技术标签:

【中文标题】需要使用 jquery 对具有部分文本字段名称的值进行匹配并返回结果【英文标题】:Need to do a match on a value with partial name of textfield with jquery and return results 【发布时间】:2017-11-07 19:23:41 【问题描述】:

我目前设置了一个表单,用户在其中输入数字,并根据输入的数字,通过 jquery 显示一系列文本框。

文本框显示代码如下:

for(i=0;i<count;i++)


ch.innerhtml = ch.innerHTML +"<div style='width:120px;float:left;'>Left    
Slide (size 6):</div><div style='float:left;width:100px;'> <input 
type='text' class='txt' style='width:80px;margin-right:10px;font-size:14px !
important;' name='six"+ i+"'></div>";


(有几个,从本示例尺寸 6 到尺寸 10。)

jquery 基本上会遍历并选择所有输入文本框的值,将它们连接起来并将它们添加到表单上的隐藏字段中,然后将其提交到后端。

(我只有一个字段可以使用,并且需要通过一个字段传递大量信息。)

这部分的代码如下:

$(function() 
        $("#shineon").click(function(event)                
            var data = [];

            var form = $("form :input[type=text]");



            $.each(form, function(e, textBox) 


                if (e > 0) 
data.push($.trim(textBox.value));
 

            );


            $("#mybond").val(data.join(" "));


        );
    );

这返回的几乎正是我所需要的,所有动态生成的文本框的值。

它返回输入如下:

textone texttwo textthree textfour

但是,我确实需要以更具体的方式加入它们 - 这样我才能捕获所有值,然后基于部分名称匹配(“六”),其中我的文本字段被命名为:six1 Six2 Six3 等等上...

所以我的输入返回看起来像这样:

 six1 - textone texttwo
 six2 - textone texttwo
 six3 - textone texttwo

有没有办法在不破坏我已经编写的代码的情况下轻松完成这项工作,并且效果很好?

【问题讨论】:

【参考方案1】:

从元素中获取name属性并将其与值连接起来:

data.push($.trim(textBox.getAttribute('name') + textBox.value));

【讨论】:

这可行,但我不知道确切的名称,我只会知道部分名称 - 因为它取决于用户输入,这是未知的 - 所以我可能需要得到:six1 Six2 Six3 或者我可能需要得到 Six1, Six2, Six3, Six4, Six5, Six6, Six7 - @ForeverDita 你想获取inputname 及其对应的value 吗? 是的,我想通过部分名称匹配的输入循环,因为我不知道是否有 2 或 10 或 15 - 然后我想获得值,但我可以转储到隐藏字段中-我现在正在使用上面的代码执行此操作,但是结果以空格分隔的形式返回-我想做的是使每个结果都以部分名称匹配( ie Six1, Six2, Six3) 回到一行,然后下一行将根据部分名称 7(即 Seven1, Seven2, Seven3, Seven4 等)给出匹配 - 这有意义吗? 好的,如果你想每次都创建一个新行,只需添加新行字符\n。像这样写代码:textBox.getAttribute('name') + textBox.value + '\n' 我实际上是通过使用 data.push(this.name);但我接受了你的回答,因为你让我走上了正确的道路,如果没有你的回答,我不会明白这一点。非常感谢!

以上是关于需要使用 jquery 对具有部分文本字段名称的值进行匹配并返回结果的主要内容,如果未能解决你的问题,请参考以下文章

Javascript按名称更改字段值

jQuery 高级选择器

使用jquery禁用具有名称属性的textarea字段[重复]

如果超出范围,防止 jQuery UI datepicker 更改文本字段的值

使用 jquery 验证器验证具有相同名称的多个文本框仅验证第一个输入

如何在 Access VBA 中评估字段名称的文本