我用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。
答案 0 :(得分:1)
试试这个
<script>
$(document).ready(function(){
$(document).on('click',"#previewForm",function(){
var orderName = $("input[name='order[name]']").val();
$( "#contactCollected" ).text( orderName );
});
});
</script>
答案 1 :(得分:1)
将“类型”从“文本”更改为“输入”,并删除明确的“类型”声明:
<input name="order[name]" id="order[name]" />
$("input[type=input][name='order[name]']")
过去那个,关于用于dom属性的字符的注释:
对于HTML5之前的版本,如果您在属性中使用括号,则会出现片状行为,例如ID和名称。
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
您可以通过HTML5文档类型删除括号:
HTML 5更宽容,只说id必须包含at 至少一个字符,可能不包含任何空格字符。
有关详情:What are valid values for the id attribute in HTML?
我建议为你的id提出不同的命名方案,然后你的选择器会更直接。
多属性选择器示例:https://api.jquery.com/multiple-attribute-selector/
答案 2 :(得分:1)
我正在这里练习线程死灵术,所以提前道歉。该线程在搜索中返回,但缺乏可用的答案,所以我希望能让后续的人受益。
上述方括号元素所需的选择是:
$('#order\\[name\\]').val()
感谢以下线程: How do I get jQuery to select elements with a . (period) in their ID?
答案 3 :(得分:-1)
更改 - <input name="order[name]" id="order[name]" type="text">
到<input id="order_name" type="text">
- (此处不允许使用方括号,如果指定I,则不需要名称 - 确保ID是唯一的。)
使用 - $("input#order_name").val();