如何将值参数传递给Bootstrap中的modal.show()函数

Nam*_*mbi 27 jquery modal-dialog twitter-bootstrap jquery-events

我有一个页面显示当地咖啡馆的列表.当用户点击某个咖啡馆时,会显示一个模式对话框,该对话框已经预先填写了"咖啡馆名称".该页面包含许多咖啡馆名称,表单应包含他点击的"咖啡馆名称".

以下是使用链接按钮生成为文本的咖啡馆名称列表

         <table class="table table-condensed  table-striped">
      <tbody>   
        <tr>
          <td>B&Js
          </td>
          <td>10690 N De Anza Blvd </td>
          <td>
              <a class="btn btn-primary" data-toggle="modal" onClick="$('#createFormId').modal('show')" >Announce</a>
          </td>
        </tr>

        <tr>
          <td>CoHo Cafe
          </td>
          <td>459 Lagunita Dr </td>
          <td>
              <a class="btn btn-primary" data-toggle="modal" onClick="$('#createFormId').modal('show')" >Announce</a>
          </td>
        </tr>


        <tr>
          <td>Hot Spot Espresso and Cafe
          </td>
          <td>1631 N Capitol Ave </td>
          <td>
              <a class="btn btn-primary" data-toggle="modal" onClick="$('#createFormId').modal('show')" >Announce</a>
          </td>
        </tr>

      </tbody>
    </table>
Run Code Online (Sandbox Code Playgroud)

这是模态形式

<div class="modal hide fade" id="createFormId"">
<div class="modal-header">
    <a href="#" class="close" data-dismiss="modal">&times;</a>
    <h3>Create Announcement</h3>
</div>
<div class="modal-body">
    <form class="form-horizontal" method="POST" commandName="announceBean" action="/announce" >
        <input type="hidden" name="cafeId" value="104" />
        <fieldset>
            <div class="control-group">
                <label class="control-label" for="cafeName">Where I am Coding</label>
                <div class="controls">
                    <input id="cafeName" name="cafeName" class="input-xlarge disabled" type="text" readonly="readonly" type="text" value="B&amp;Js"/>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="date">Date</label>
                <div class="controls">
                    <input type="text" class="input-xlarge" id="date" name="date" />
                    <p class="help-block"></p>
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <input type="submit" class="btn btn-primary" value="create" />
                    <input type="button" class="btn" value="Cancel" onclick="closeDialog ();" />
                </div>
            </div>
        </fieldset>
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是如何将实际值传递给模态形式的"值"属性?

<input type="hidden" name="cafeId" value="104" />
Run Code Online (Sandbox Code Playgroud)

表单"show"事件由"onlick"事件触发

<a class="btn btn-primary" data-toggle="modal" onClick="$('#createFormId').modal('show')" >Announce</a>
Run Code Online (Sandbox Code Playgroud)

Men*_*ual 46

你可以这样做:

<a class="btn btn-primary announce" data-toggle="modal" data-id="107" >Announce</a>
Run Code Online (Sandbox Code Playgroud)

然后使用jQuery绑定click并将Announce data-id作为模式#cafeId中的值发送:

$(document).ready(function(){
   $(".announce").click(function(){ // Click to only happen on announce links
     $("#cafeId").val($(this).data('id'));
     $('#createFormId').modal('show');
   });
});
Run Code Online (Sandbox Code Playgroud)

  • 效果很好,但我怎样才能获得淡入效果?使用命令不一样. (2认同)

Ri4*_*i4a 14

使用

$(document).ready(function() {
    $('#createFormId').on('show.bs.modal', function(event) {
        $("#cafeId").val($(event.relatedTarget).data('id'));
    });
});
Run Code Online (Sandbox Code Playgroud)