如何使用 jquery 从复杂的输入名称中获取值
Posted
技术标签:
【中文标题】如何使用 jquery 从复杂的输入名称中获取值【英文标题】:How to get value with jquery from complex input name 【发布时间】: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]"
任何建议或解决方案都会很好!
【问题讨论】:
试试这个function queryForm(key) return $('#form input[name=' + key + ']')[0].val();
@Stranger 我认为您的解决方案会引发脚本错误。
How do I select an element with special characters in the ID?的可能重复
【参考方案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();
注意键周围的双引号 (")。
【讨论】:
以上是关于如何使用 jquery 从复杂的输入名称中获取值的主要内容,如果未能解决你的问题,请参考以下文章