在引导程序弹出窗口中包含表单?

use*_*003 93 javascript jquery popover twitter-bootstrap twitter-bootstrap-3

<div class="container">
    <div class="row" style="padding-top: 240px;">
        <a href="#" class="btn btn-large btn-primary" rel="popover"
            data-content="<form><input type="text"/></form>"
            data-placement="top" data-original-title="Fill in form">Open form</a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

我猜我会将表单内容存储在javascript函数中...

如何在引导程序弹出窗口中包含表单?

HaN*_*riX 271

我会将我的表单放入标记而不是某些数据标记.这是它的工作方式:

JS代码:

$('#popover').popover({ 
    html : true,
    title: function() {
      return $("#popover-head").html();
    },
    content: function() {
      return $("#popover-content").html();
    }
});
Run Code Online (Sandbox Code Playgroud)

HTML标记:

<a href="#" id="popover">the popover link</a>
<div id="popover-head" class="hide">
  some title
</div>
<div id="popover-content" class="hide">
  <!-- MyForm -->
</div>
Run Code Online (Sandbox Code Playgroud)

演示

替代方法:

X-编辑

您可能想看看X-Editable.一个库,允许您根据弹出窗口在页面上创建可编辑元素.

X-Editable演示

Webcomponents

Mike Costello发布了Bootstrap Web Components.这个漂亮的库有一个Popovers组件,可以让你将表单嵌入为标记:

<button id="popover-target" data-original-title="MyTitle" title="">Popover</button>

<bs-popover title="Popover with Title" for="popover-target">
  <!-- MyForm -->
</bs-popover>
Run Code Online (Sandbox Code Playgroud)

演示

  • 这是一个很好的解决方案.应该是接受的答案. (20认同)
  • 这个答案值得一百二十六票! (2认同)

Adi*_*rab 48

type="text"用单引号替换双引号,Like

"<form><input type='text'/></form>"
Run Code Online (Sandbox Code Playgroud)

要么

data-content用单引号替换双引号,Like

data-content='<form><input type="text"/></form>'
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记按钮标签中的"data-html ='true'" (17认同)
  • 从 Bootstrap &gt;= 3.4 开始,您还需要 {sanitize: false} 作为初始化选项 (2认同)

小智 11

<a data-title="A Title" data-placement="top" data-html="true" data-content="<form><input type='text'/></form>" data-trigger="hover" rel="popover" class="btn btn-primary" id="test">Top popover</a>
Run Code Online (Sandbox Code Playgroud)

只是状态data-html ="true"


Tat*_*nit 5

像这样工作演示 http://jsfiddle.net/7e2XU/21/show/# * 更新:http : //jsfiddle.net/kz5kjmbt/

 <div class="container">
    <div class="row" style="padding-top: 240px;"> <a href="#" class="btn btn-large btn-primary" rel="popover" data-content='
<form id="mainForm" name="mainForm" method="post" action="">
    <p>
        <label>Name :</label>
        <input type="text" id="txtName" name="txtName" />
    </p>
    <p>
        <label>Address 1 :</label>
        <input type="text" id="txtAddress" name="txtAddress" />
    </p>
    <p>
        <label>City :</label>
        <input type="text" id="txtCity" name="txtCity" />
    </p>
    <p>
        <input type="submit" name="Submit" value="Submit" />
    </p>
</form>
 data-placement="top" data-original-title="Fill in form">Open form</a>

    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript 代码:

    $('a[rel=popover]').popover({
      html: 'true',
      placement: 'right'
    })
Run Code Online (Sandbox Code Playgroud)

截屏

工作更新小提琴截图


Fre*_*red 5

您可以div使用 Bootstrap 提供的hidden类从隐藏元素加载表单。

<button class="btn btn-default" id="form-popover">Form popover</button>

<div class="hidden">
  <form id="form">
    <input type="text" class="form-control" />
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

$('#form-popover').popover({
    content: $('#form').parent().html(),
    html: true,
});
Run Code Online (Sandbox Code Playgroud)