使用jQuery按名称定位输入字段

我有一个输入字段,如下所示:

 

我试图改变它的价值并尝试这个:

 jQuery('submitted[event_email]').val('test'); 

我想用名字来定位它,但我不确定我做错了什么。 有人能帮忙吗?

你需要使用属性equals selector [name =“value”]

同样来自文档

要使用任何元字符(例如!“#$%&’()* +,。/:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\\

所以你可以这样做:

 jQuery('input[name="submitted\\[event_email\\]"]').val('test'); 

但实际上你不需要在这里转义[ ] ,因为它包含在引号中:

 jQuery('[name="submitted[event_email]"]').val('test'); 

你需要逃避[]使用\但是\也是特殊字符,所以我们也逃避它。

所以我们逃避使用\\

 jQuery('[name="submitted\\[event_email\\]"]').val('test'); 

属性等于选择器[name =“value”]


更新

小提琴演示

没有必要转义[]因为它用引号括起来(即它是字符串)

 jQuery('[name="submitted[event_email]"]').val('test'); // ^ ^