繁体   English   中英

如何与jQuery.val一起使用数组

[英]How to use an array together with jQuery.val

我想在页面上有多个表单字段,并将结果放入数组中,然后将其保存到数据库中。 我有,它奏效了。 然后,我放入一个自动完成功能,该功能从数据库中获取建议。 那也可以,但是如果我尝试使用数组则不行。

<input type="text" name="PMS" id="PMS" autocomplete="off" onkeyup="autocomplete2()">
    <input type="submit" name="submit" value="Lägg till">

上面和下面提供了自动完成功能

function autocomplete2() {
var keyword = $('#PMS').val();

$.ajax({
    url: 'ajax_refresh.php',
    type: 'POST',
    data: {keyword:keyword},
    success:function(data){                  

        $('#Sökord_list').show();
        $('#Sökord_list').html(data);                              
    }
}); }

但是,如果我尝试类似

<input type="text" name="PMS[]" id="PMS[]" autocomplete="off" onkeyup="autocomplete2()">
<input type="submit" name="submit" value="Lägg till">

function autocomplete2() {
var keyword = $('#PMS[]').val();

$.ajax({
    url: 'ajax_refresh.php',
    type: 'POST',
    data: {keyword:keyword},
    success:function(data){



        $('#Sökord_list').show();
        $('#Sökord_list').html(data);

    }
}); }

同样,这可能与我对编程的一些基本原理仍然缺乏了解有关。 非常感谢您的帮助! 请告诉我是否需要更多代码。

@瑞典人

我们将[]用于名称属性以将多个值存储在数组中,而不用于id属性。

id="PMS[]"替换为id="PMS"与选择var keyword = $('#PMS').val();

ID应该是唯一的。 因此,即使有可能,我也不会对多个元素使用相同的ID。 但是,如果您做不到。 您可以执行以下类似操作以获取值。

 $('#mybutton').click(function(){ let myId = 'PMS' let keyword = Array.from($(`[id="${myId}"]`), x => x.value) console.log(keyword) }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" name="PMS" id="PMS" value="one"> <input type="text" name="PMS" id="PMS" value="two"> <input type="text" name="PMS" id="PMS" value="three"> <input type="button" value="show vals" id="mybutton"></button> 

感谢您的回答! 我尝试使用id = PMS,name = PMS []来处理一个表单字段。 但是,它似乎是传递给脚本的ID而不是名称,因为如果我将ID更改为PMS2,但我可以删除该名称,它仍然可以使用,但是它不起作用。 即使我能弄清楚如何将名称传递给脚本,但我认为将其以一种整洁的方式工作会很麻烦,所以我认为我将尝试下载一个自动完成的小部件,您可以在其中输入多个一个字段中的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM