Bootstrap模式不会动态获取正确的id

时间:2017-06-25 16:59:29

标签: javascript ruby-on-rails bootstrap-modal slim-lang

我的这段代码用ruby写在铁轨上并且很苗条。在下面的代码中,我试图循环我的每一课,并显示它们。此外,每个课程都有一个问题按钮,它生成一个弹出框(引导模式),它接收问题输入,与该问题相关的lesson_id并将其保存到数据库中。此代码的问题是每个问题按钮仅需要第一课的lesson_id。无论我点击哪个课程的问题,它总是需要第一课的课程ID。现在,我认为这里的问题是bootstrap模式是javascript所以它在加载整个内容后加载,这就是我收到此错误的原因。但我不知道如何解决这个问题。请帮我解决这个问题。谢谢。

`-lessons.each do |lesson|
  span.pull-right
    a[data-open="exampleModal2"]
      i.fa.fa-question[aria-hidden="true"]
  #exampleModal2.reveal[data-reveal]
        h1
        center
          | Ask question
        = simple_form_for Question.new, url: lesson_questions_path(lesson.id), method: :post do |f|
          = lesson.name
          = f.input :title, label: "Question"
          = f.input :content, label: "Question Description"
          = f.button :submit
          button.close-button aria-label=("Close modal") data-close="" type="button"
            span aria-hidden="true"  ×`

1 个答案:

答案 0 :(得分:0)

您的问题是id属性在每次迭代后都没有被更改,这使得多个元素共享相同的ID,从而导致破坏的Bootstrap模式和无效的HTML。

你应该改变这个:

#exampleModal2.reveal[data-reveal]

有这样的事情:

.reveal[data-reveal id=lesson.id]

不要忘记相应地更新a[data-open="exampleModal2"]。我不记得Bootstrap如何打开模态,但是如果它是通过data-open属性,则应该是它。