Содержите форму внутри загрузочного popover?
<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>
JSfiddle
Я предполагаю, что я сохраню содержимое формы в javascript-функции...
Как мне добавить форму в загрузочном popover?
Ответы
Ответ 1
Либо замените двойные кавычки вокруг type="text"
одинарными кавычками, Like
"<form><input type='text'/></form>"
ИЛИ
заменить двойные кавычки data-content
с помощью одиночных кавычек, Like
data-content='<form><input type="text"/></form>'
Ответ 2
Я бы поместил свою форму в разметку, а не в тег данных.
Вот как это могло бы работать:
Код JS:
$('#popover').popover({
html : true,
title: function() {
return $("#popover-head").html();
},
content: function() {
return $("#popover-content").html();
}
});
Разметка 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>
Демо
Альтернативные подходы:
X-Editable
Возможно, вы захотите взглянуть на X-Editable.
Библиотека, которая позволяет создавать редактируемые элементы на вашей странице на основе popovers.
![X-Editable demo]()
веб-компоненты
Майк Костелло выпустил 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>
Демо
Ответ 3
<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>
just state data-html = "true"
Ответ 4
Вы можете загрузить форму из скрытого элемента div
с помощью класса hidden
, который предоставляется Bootstrap.
<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>
JavaScript:
$('#form-popover').popover({
content: $('#form').parent().html(),
html: true,
});
Ответ 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>
Код JavaScript:
$('a[rel=popover]').popover({
html: 'true',
placement: 'right'
})
ScreenShot
![working updated fiddle screenshot]()
Ответ 6
Или попробуйте этот
Второй, включая второй скрытый контент div для хранения формы и теста на скрипке http://jsfiddle.net/7e2XU/21/
<link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-tooltip.js"></script>
<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-popover.js"></script>
<div id="popover-content" style="display: none" >
<div class="container" style="margin: 25px; ">
<div class="row" style="padding-top: 240px;">
<label id="sample">
<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>
</label>
</div>
</div>
</div>
<a href="#" style="margin: 40px 40px;" class="btn btn-large btn-primary" rel="popover" data-content='' data-placement="left" data-original-title="Fill in form">Open form</a>
<script>
$('a[rel=popover]').popover({
html: 'true',
placement: 'right',
content : function() {
return $('#popover-content').html();
}
})
</script>
Ответ 7
Полное решение для тех, кому это может понадобиться, я использовал это с хорошими результатами до сих пор
JS:
$(".btn-popover-container").each(function() {
var btn = $(this).children(".popover-btn");
var titleContainer = $(this).children(".btn-popover-title");
var contentContainer = $(this).children(".btn-popover-content");
var title = $(titleContainer).html();
var content = $(contentContainer).html();
$(btn).popover({
html: true,
title: title,
content: content,
placement: 'right'
});
});
HTML:
<div class="btn-popover-container">
<button type="button" class="btn btn-link popover-btn">Button Name</button>
<div class="btn-popover-title">
Popover Title
</div>
<div class="btn-popover-content">
<form>
Or Other content..
</form>
</div>
</div>
CSS
.btn-popover-container {
display: inline-block;
}
.btn-popover-container .btn-popover-title, .btn-popover-container .btn-popover-content {
display: none;
}
Ответ 8
Я много работаю в WordPress, поэтому использую PHP.
Мой метод состоит в том, чтобы содержать мой HTML в переменной PHP, а затем эхо-переменную в data-content
.
$my-data-content = '<form><input type="text"/></form>';
вместе с
data-content='<?php echo $my-data-content; ?>'