我有一个动态生成的输入字段,通过点击添加按钮生成另一个输入字段。
<div class="entry input-group col-md-12">
<input class="form-control" name="fields[]" type="url" placeholder="Type URL" />
<span class="input-group-btn">
<button class="btn btn-success btn-add" type="button">
<span class="glyphicon glyphicon-plus"></span>
</button>
</span>
</div>
问题是我想通过Ajax获取这些输入字段的值,但只传递第一个输入字段值?
<script>
function launchAjax(){
$.post{"submit.php",{
url: $("[name='fields[]']").val(),
},
);
};
不知道如何修复它如果我确实得到了这个修复,我也不知道如何在PHP中处理它。谢谢你的帮助
答案 0 :(得分:1)
您需要使用引号包装该选择器: [name='fields[]']
console.log($("[name='fields[]']").val())
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="fields[]" value="Ele from SO">
&#13;
答案 1 :(得分:1)
jQuery attribute selector必须遵循下一个规则
- 单引号内的双引号:$(&#39; a [rel =&#34; nofollow self&#34;]&#39;)
- 双引号内的单引号:$(&#34; a [rel =&#39; nofollow self&#39;]&#34;)
- 在单引号内转义单引号:$(&#39; a [rel = \&#39; nofollow self \&#39;]&#39;)
- 在双引号内转义双引号:$(&#34; a [rel = \&#34; nofollow self \&#34;]&#34;)
在之前的jQuery版本中,选择器不带引号(更多细节 - https://github.com/jquery/jquery/issues/2824)
修复您的问题(只需添加引号)
1) $("[name=\"fields[]\"]")
2) $('[name=\'fields[]\']')
3) $("[name='fields[]']");
4) $('[name="fields[]"]"');