부트 스트랩 팝 오버 내에 양식이 포함되어 있습니까?


95
<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

나는 자바 스크립트 함수 내에 양식 내용을 저장할 것이라고 생각합니다 ...

부트 스트랩 팝 오버 내에 양식을 어떻게 포함합니까?

답변:


50

큰 따옴표 type="text"를 작은 따옴표로 바꾸 십시오.

"<form><input type='text'/></form>"

또는

큰 따옴표 줄 바꿈 data-content을 작은 따옴표로 바꾸 십시오.

data-content='<form><input type="text"/></form>'

17
버튼 태그의 "data-html = 'true'"를 잊지 마세요
cwirz

275

내 양식을 일부 데이터 태그가 아닌 마크 업에 넣을 것입니다. 이것이 작동하는 방법입니다.

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- 편집 가능

X-Editable을 살펴볼 수 있습니다 . 팝 오버를 기반으로 페이지에서 편집 가능한 요소를 만들 수있는 라이브러리입니다.

X-Editable 데모

웹 컴포넌트

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>

데모


1
니스 솔루션, 난 그냥에 제목을 넣어 data-title="Some Title"<a id="myID">... 별도의 사업부를 가지고 있지의 태그
pebbo

1
유일한 정답입니다.
poitroae

1
@HaNdTriX +10 당신이 그것을 넣은 방식.
2sb

1
읽어보십시오 : getbootstrap.com/javascript/#popoverstrigger 옵션을 찾고 있습니다. ( trigger: 'focus')
HaNdTriX 2014

1
사용하지 않는 이유 : angular-ui.github.io/bootstrap/#/popover ? 문제를 해결해야합니다.
HaNdTriX

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>

상태 data-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>

자바 스크립트 코드 :

    $('a[rel=popover]').popover({
      html: 'true',
      placement: 'right'
    })

스크린 샷

업데이트 된 바이올린 스크린 샷 작업


@DERIIIFranz 이제 고쳐 주셔서 감사합니다 : jsfiddle.net/kz5kjmbt CDN 누락, 업데이트 된 링크 및 스크린 샷 체크 아웃. :)
Tats_innit 2015

이 솔루션은 현재 Chrome에서 작동하며 질문에 답합니다. 그러나 html 속성 내에 복잡한 마크 업이 있으면 오류가 발생하기 쉽고 코드의 유지 관리 및 학습 가능성에 위험이 추가 될 수 있습니다.
Ricardo

4

divBootstrap 제공 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>

자바 스크립트 :

$('#form-popover').popover({
    content: $('#form').parent().html(),
    html: true,
});

1
교체 $(...).parent().html()와 함께 $(...).clone())
의 Rhys 브래드 베리에게

3

또는 이것을 시도하십시오

두 번째 숨겨진 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>

이것은 좋은 해결책이지만 jsfiddle 링크가 동일한 구현에 해당하지 않는 것 같습니다. 올바르게 구현하는이 플렁크를 찾으실 수 있습니다 : plnkr.co/edit/IV2YbLCFSiYI0T1mXOLN?p=preview .
bernardn 2013

2

필요한 모든 사람을위한 완벽한 솔루션, 지금까지 좋은 결과를 얻었습니다.

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;
}

1

WordPress에서 많이 일하므로 PHP를 사용합니다.

내 방법은 내 HTML을 PHP 변수에 포함시킨 다음 data-content.

$my-data-content = '<form><input type="text"/></form>';

와 함께

data-content='<?php echo $my-data-content; ?>' 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.