首页 > 解决方案 > 如何使用 jquery 从复杂的输入名称中获取值

问题描述

这是我的情况:

我正在尝试从表单的输入中获取价值name="data[type][answer]",例如:

<form id="form" method="POST" >
<input type="hidden" name="data[type][answer]" value="Hello from Space">
</form>

因此,我的函数代码应如下所示:

 function queryForm(key) {
   return $('#form input[name=' + key + ']').val();
 }

我得到了input[name=order[type][answer]]哪些不起作用,我知道为什么。

有没有办法以不同的方式编写这个东西,或者有没有其他方法可以获取价值?顺便说一句,我需要这种形式的名称:name="data[type][answer]"

任何建议或解决方案都会很好!

标签: jqueryarraysformsinput

解决方案


您只需要在值周围加上引号name。然后你必须从返回的结果中选择第一个结果并用 jquery 再次包装它才能调用.val()

function queryForm(key) {
    return $("#form input[name='" + key + "']").first()
      .val();
}
 
console.log(queryForm('data[type][answer]'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <html>
    <head></head>
    <body>
    <form id="form" method="POST" >
    <input type="hidden" name="data[type][answer]" value="Hello from Space">
    </form>
    </body>
    </html>


推荐阅读