【问题标题】:How to get value with jquery from complex input name如何使用 jquery 从复杂的输入名称中获取值
【发布时间】:2019-01-04 18:44:06
【问题描述】:

这是我的情况:

我正在尝试从具有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]"

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

【问题讨论】:

标签: jquery arrays forms input


【解决方案1】:

您只需要为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>

【讨论】:

  • 几个小窍门让这个过程更简单一些:使用双引号而不是转义单引号。使用 .first() 而不是使用 [0] 并用另一个 jQuery 调用包装结果。
【解决方案2】:

您只需要...

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

注意键周围的双引号 (")。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多