水豚:如何通过其ID填写输入字段


88

我有这个:

<input class="string optional" 
    id="course_group_courses_attributes_2_name" 
    name="course_group[courses_attributes][2][name]" 
    placeholder="Lengua" 
    size="15" 
    type="text" />
</div> 

如何通过ID填写该字段?

Answers:


126

fill_in 接受id作为第一个参数:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text'

9
我以为是这样,但它不起作用。似乎它不能填补它。它不会为找不到它提供任何错误。它只是没有填补。
尼尔安

也许您可以包含有问题的水豚代码和任何其他相关代码。
raidfive 2011年

我发现那个问题在Mongoid中。发布候选错误。
尼尔安

@尼尔安啊!很高兴您找到
答案

我们有解决方案吗?
Zakos

32

您也可以使用以下方法进行操作:

find('Id or class here').set('some text')

7

fill_in接受没有#符号的ID,我一开始就感到困惑。还要注意,如果您的输入字段是模式字段,则可能需要等待过渡或淡入,然后才能填写该字段。


4

如果您使用的是simple_form gem,则必须注意,它会自动标识表单元素,因此您自己手动标识元素是徒劳的!

有; 但是,simple_form遵循的命名约定是id表单元素。

object_attribute

因此,如果您要填写的联系信息如下:

= simple_form_for @contact do |f|
  = f.input :first_name
  = f.input :last_name

然后,simple_form将分别自动为每个表单元素生成ID:

id="contact_first_name"
id="contact_last_name"

现在,您只需使用该命名约定即可满足您的所有fill_in需求。希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.