在Bootstrap data-toggle ='modal'之前编辑表单输入值

时间:2012-12-03 09:13:41

标签: jquery twitter-bootstrap

我有一个生成结果表,每个结果都带有一个编辑按钮。

<table>
    <tr>
      <td>Some Result 1</td><td><a href='#edit_tmp_form' data-toggle='modal' role='button' class='response-edit btn btn-warning'>Edit</a></td>
    </tr>
    <tr>
      <td>Some Result 2</td><td><a href='#edit_tmp_form' data-toggle='modal' role='button' class='response-edit btn btn-warning'>Edit</a></td>
    </tr>
</table>

我有一个临时表格。

<div id="edit_tmp_form" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="form_label" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h4 id="form_label">Edit</h4>
    <form class="form-inline" method="post" action="/somewhere">
        <input type="text" id="add_name" class="input" placeholder="something" name="name">
        <button id='add_c' disabled="disabled" type="submit" class="btn">增加</button>
    </form>
  </div>
</div>

到目前为止,一切正常。

但是,我正在尝试根据我要编辑的对象编辑输入字段。

例如: 如果我点击“Some Result 1”旁边的编辑按钮,我希望输入字段预先填充“Some Result 1”。

我尝试使用jQuery,然后导致了这个问题。

如果我这样做:

$('.response-edit').click(function(){
   console.log('abc');
});

单击按钮时,代码无法按预期运行。我假设bootstrap数据切换在onclick事件监听器之前运行,因此不会读取我的代码。

这有什么办法吗?或者我的假设错了?如果我的假设是错误的,请引导我走正确的道路。

谢谢。

1 个答案:

答案 0 :(得分:1)

根据引导代码(https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js),bootstrap使用click事件并阻止默认的浏览器行为。所以在这里,bootstrap只是阻止浏览器在你点击一个锚时导航。

但是bootstrap不会阻止点击事件冒泡,所以你应该能够抓住它并做你想做的事情。我刚刚尝试了一个带有日志消息的小例子,点击了一个data-toggle=modal和一个简单模态的锚点。它有效。

当你的元素不在这里时,也许你试图绑定click事件?

试试这个:

$('body').on('click', '.response-edit', function(){
   console.log('abc');
});