jQuery select 名称为数组的输入元素
jQuery select input element with name as array
我在 Google 上搜索了半小时,但找不到解决方案,但我认为这应该非常简单。
这是我的代码
<input name="order[name]" id="order[name]" type="text">
<script>
$(document).ready(function(){
$("#previewForm").click(function(){
var orderName = $("input[type=text][name='order[name]']").val();
$( "#contactCollected" ).text( orderName );
});
});
</script>
我希望用户预览他刚刚填写的表格。
正在替换
$( "#contactCollected" ).text( orderName );
和
$( "#contactCollected" ).text( 'some text' );
有效,所以我认为这是选择器问题。如有必要,我可以提供更多代码。
编辑:
看起来这是按原样工作的,我什至不确定在这个过程中我在哪里用另一个错误替换了一个错误。
感谢评论中的所有人,特别是@Barmar 和@Jonathan.Brink。
我不会删除这个问题,因为在输入元素中讨论了命名 ID,但我不确定规则。
感谢大家的宝贵时间,我再次为没有立即试用 jsfiddle 表示歉意。
试试这个
<script>
$(document).ready(function(){
$(document).on('click',"#previewForm",function(){
var orderName = $("input[name='order[name]']").val();
$( "#contactCollected" ).text( orderName );
});
});
</script>
将您的 "type" 从 "text" 更改为 "input" 并删除您的显式 "type" 声明:
<input name="order[name]" id="order[name]" />
$("input[type=input][name='order[name]']")
之后,关于用于 dom 属性的字符的注释:
对于 HTML5 之前的版本,如果您在属性中使用方括号,例如 id 和 name,将会出现不稳定的行为。
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
followed by any number of letters, digits ([0-9]), hyphens ("-"),
underscores ("_"), colons (":"), and periods (".").
虽然您可以使用 HTML5 文档类型来摆脱括号:
HTML 5 is even more permissive, saying only that an id must contain at
least one character and may not contain any space characters.
更多详情:What are valid values for the id attribute in HTML?
我建议为您的 ID 想出一个不同的命名方案,这样您的选择器会更直接。
多属性选择器示例:https://api.jquery.com/multiple-attribute-selector/
将 - <input name="order[name]" id="order[name]" type="text">
更改为 <input id="order_name" type="text">
--(此处不允许使用方括号,如果指定 I,则不需要名称 - 确保 ID 是唯一的)。
访问使用 - $("input#order_name").val();
我在这里练习线程死灵法术所以提前道歉。此话题在搜索中返回,但缺少可用的答案,因此我希望对后续的人有所帮助。
上面带方括号的元素需要的select是:
$('#order\[name\]').val()
感谢以下主题:
How do I get jQuery to select elements with a . (period) in their ID?
我在 Google 上搜索了半小时,但找不到解决方案,但我认为这应该非常简单。
这是我的代码
<input name="order[name]" id="order[name]" type="text">
<script>
$(document).ready(function(){
$("#previewForm").click(function(){
var orderName = $("input[type=text][name='order[name]']").val();
$( "#contactCollected" ).text( orderName );
});
});
</script>
我希望用户预览他刚刚填写的表格。
正在替换
$( "#contactCollected" ).text( orderName );
和
$( "#contactCollected" ).text( 'some text' );
有效,所以我认为这是选择器问题。如有必要,我可以提供更多代码。
编辑: 看起来这是按原样工作的,我什至不确定在这个过程中我在哪里用另一个错误替换了一个错误。
感谢评论中的所有人,特别是@Barmar 和@Jonathan.Brink。
我不会删除这个问题,因为在输入元素中讨论了命名 ID,但我不确定规则。
感谢大家的宝贵时间,我再次为没有立即试用 jsfiddle 表示歉意。
试试这个
<script>
$(document).ready(function(){
$(document).on('click',"#previewForm",function(){
var orderName = $("input[name='order[name]']").val();
$( "#contactCollected" ).text( orderName );
});
});
</script>
将您的 "type" 从 "text" 更改为 "input" 并删除您的显式 "type" 声明:
<input name="order[name]" id="order[name]" />
$("input[type=input][name='order[name]']")
之后,关于用于 dom 属性的字符的注释:
对于 HTML5 之前的版本,如果您在属性中使用方括号,例如 id 和 name,将会出现不稳定的行为。
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
虽然您可以使用 HTML5 文档类型来摆脱括号:
HTML 5 is even more permissive, saying only that an id must contain at least one character and may not contain any space characters.
更多详情:What are valid values for the id attribute in HTML?
我建议为您的 ID 想出一个不同的命名方案,这样您的选择器会更直接。
多属性选择器示例:https://api.jquery.com/multiple-attribute-selector/
将 - <input name="order[name]" id="order[name]" type="text">
更改为 <input id="order_name" type="text">
--(此处不允许使用方括号,如果指定 I,则不需要名称 - 确保 ID 是唯一的)。
访问使用 - $("input#order_name").val();
我在这里练习线程死灵法术所以提前道歉。此话题在搜索中返回,但缺少可用的答案,因此我希望对后续的人有所帮助。
上面带方括号的元素需要的select是:
$('#order\[name\]').val()
感谢以下主题: How do I get jQuery to select elements with a . (period) in their ID?