我在那里遇到一个愚蠢的问题,但是我敢肯定,JavaScript的高手对您来说很容易!
这是我的symfony表格:
$form = $this->createFormBuilder()
->add('accept', 'checkbox', array('required' => false, 'label' => 'Do You Accept This News ?'))
->add('custom', 'textarea', array('required' => false, 'attr' => array('rows' => 10), 'label' => 'Attach a Custom Message'))
->add('line', 'integer', array('required' => false))
->add('Send', 'submit',array('attr' => array('class' => 'button')))
->getForm();
这是我的树枝模板渲染它:
<table>
<thead>
<tr>
<th>Time</th>
<th>Statement</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% set count = 0 %}
{% for milestone in milestones %}
<tr>
<td>{{ milestone.createdAt | date('M-d H:i:s') }}</td>
<td><a href="{{ path('rudelist_entity',{'slug':milestone.idEntity.slug})}}">{{ milestone.idEntity.name}}</a>{{ newStatements[count] }}
</td>
<td>
<a class="button revealModal" href="#" data-reveal-id="myModalJournalist">Treat News</a>
<div id="myModalJournalist" class="reveal-modal" data-reveal>
{{ form_start(form) }}
<div class="marginBottom">
{{ form_widget(form.accept) }}
{{form_label(form.accept)}}
</div>
<div class="fieldContainer fieldTextareaContainer">
{{form_label(form.custom)}}
{{form_widget(form.custom)}}
{{form_errors(form.custom)}}
</div>
<div class="hide">
{{form_widget(form.line)}}
</div>
{{ form_end(form) }}
<a class="close-reveal-modal">×</a>
</div>
</tr>
{% set count = count + 1 %}
{% endfor %}
</tbody>
</table>
就是这样,我为每行显示一个按钮,但是它们都以唯一的形式打开相同的模式,其中有一个布尔值,一个textarea和一个我要隐藏的整数字段,因为我想自动-用单击的按钮行的索引填充表单的“行”行,因此我知道需要更新该行。
我一直在尝试,但是没有成功:
$(function(){
$("body").on('click','a.button.revealModal',function(){
var position = $(this).parents("tr").index();
$("#form").find("input#form_line").val(position);
});
});
谢谢你的帮助 !
最佳答案
见https://stackoverflow.com/questions/469883/how-to-find-the-index-of-a-row-in-a-table-using-jquery
你有没有尝试过:
$("tr").index(this)
文档显示仅通过此操作,并且前面的选择应该在找到节点的位置。如果需要在特定表中找到它(并且有多个表),则可能需要提供一些上下文:
// haven't tested this
$("tr", $(this).closest("table")).index(this)
关于javascript - 用表行索引填充Symfony表单行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25442643/