답변:
confirm()
프롬프트를 표시하고 반환 true
하거나 false
사용자가 결정한 내용에 따라를 찾고있을 것입니다 .
if (confirm('Are you sure you want to save this thing into the database?')) {
// Save it!
console.log('Thing was saved to the database.');
} else {
// Do nothing!
console.log('Thing was not saved to the database.');
}
return
else 안에 넣을 수 있으며 확인에 모든 코드를 감쌀 필요는 없습니다! (경우에 따라 사례 수정)
if(!confirm('message')) return;
var answer = window.confirm("Save data?")
if (answer) {
//some code
}
else {
//some code
}
window.confirm
경고 대신 사용하십시오 . 이것이 해당 기능을 달성하는 가장 쉬운 방법입니다.
if(confirm("...")){
대신에 대신 할 수도 있습니다
'인라인'JavaScript를 사용하여이를 수행하는 방법 :
<form action="http://www.google.com/search">
<input type="text" name="q" />
<input type="submit" value="Go"
onclick="return confirm('Are you sure you want to search Google?')"
/>
</form>
<form onsubmit="...">
제안한대로 사용하면 작동합니다 :)
인라인 JavaScript를 피하십시오 -동작을 변경하면 코드의 모든 인스턴스를 편집하는 것이 의미가 있습니다.
보다 명확한 방법은와 같은 요소에서 data 속성을 사용하는 것 data-confirm="Your message here"
입니다. 아래 코드는 동적으로 생성 된 요소를 포함하여 다음 작업을 지원합니다.
a
및 button
클릭form
제출하다option
선택jQuery :
$(document).on('click', ':not(form)[data-confirm]', function(e){
if(!confirm($(this).data('confirm'))){
e.stopImmediatePropagation();
e.preventDefault();
}
});
$(document).on('submit', 'form[data-confirm]', function(e){
if(!confirm($(this).data('confirm'))){
e.stopImmediatePropagation();
e.preventDefault();
}
});
$(document).on('input', 'select', function(e){
var msg = $(this).children('option:selected').data('confirm');
if(msg != undefined && !confirm(msg)){
$(this)[0].selectedIndex = 0;
}
});
HTML :
<!-- hyperlink example -->
<a href="http://www.example.com" data-confirm="Are you sure you want to load this URL?">Anchor</a>
<!-- button example -->
<button type="button" data-confirm="Are you sure you want to click the button?">Button</button>
<!-- form example -->
<form action="http://www.example.com" data-confirm="Are you sure you want to submit the form?">
<button type="submit">Submit</button>
</form>
<!-- select option example -->
<select>
<option>Select an option:</option>
<option data-confirm="Are you want to select this option?">Here</option>
</select>
$("[data-confirm]").on('click,submit', function() { /* ... */ })
type="button"
다음 사용자가 양식 요소를 클릭하기 때문에 양식을 제출할 것인지 묻는 메시지가 표시 되었으므로 확인을 다시 클릭 한 후에는 발생하지 않았으므로 코드를 업데이트했습니다.
confirm()
은 HTML을 변경하지 않고도 원하는대로 변경할 수 있다는 것 입니다.
custome confirmBox 를 작성해야하며 , 확인 기능으로 표시되는 대화 상자에서 단추를 변경할 수 없습니다.
jquery confirmBox
이 예를 참조하십시오 : https://jsfiddle.net/kevalbhatt18/6uauqLn6/
<div id="confirmBox">
<div class="message"></div>
<span class="yes">Yes</span>
<span class="no">No</span>
</div>
function doConfirm(msg, yesFn, noFn)
{
var confirmBox = $("#confirmBox");
confirmBox.find(".message").text(msg);
confirmBox.find(".yes,.no").unbind().click(function()
{
confirmBox.hide();
});
confirmBox.find(".yes").click(yesFn);
confirmBox.find(".no").click(noFn);
confirmBox.show();
}
코드로 호출하십시오.
doConfirm("Are you sure?", function yes()
{
form.submit();
}, function no()
{
// do nothing
});
** 순수한 JavaScript confirmBox **
예 : http://jsfiddle.net/kevalbhatt18/qwkzw3rg/127/
<div id="id_confrmdiv">confirmation <button id="id_truebtn">Yes</button> <button id="id_falsebtn">No</button> </div> <button onclick="doSomething()">submit</button>
스크립트 :
<script>
function doSomething(){
document.getElementById('id_confrmdiv').style.display="block"; //this is the replace of this line
document.getElementById('id_truebtn').onclick = function(){
//do your delete operation
alert('true');
};
document.getElementById('id_falsebtn').onclick = function(){
alert('false');
return false;
};
}
</script>
CSS :
body { font-family: sans-serif; }
#id_confrmdiv
{
display: none;
background-color: #eee;
border-radius: 5px;
border: 1px solid #aaa;
position: fixed;
width: 300px;
left: 50%;
margin-left: -150px;
padding: 6px 8px 8px;
box-sizing: border-box;
text-align: center;
}
#id_confrmdiv button {
background-color: #ccc;
display: inline-block;
border-radius: 3px;
border: 1px solid #aaa;
padding: 2px;
text-align: center;
width: 80px;
cursor: pointer;
}
#id_confrmdiv .button:hover
{
background-color: #ddd;
}
#confirmBox .message
{
text-align: left;
margin-bottom: 8px;
}
document.getElementById('id_confrmdiv').style.display="none";
려면 모든 명령을 실행 한 후에 대화 상자를 숨기면 숨겨집니다.
이 플러그인은 사용 하기 쉬운 jquery를 확인하는 데 도움이 될 수 있습니다
$.confirm({
title: 'Confirm!',
content: 'Simple confirm!',
confirm: function(){
alert('Confirmed!');
},
cancel: function(){
alert('Canceled!')
}
});
또는 간단히 :
<a href="https://some-link.com/" onclick="return confirm('Are you sure you want to go to that link?');">click me!</a>
이것은 바닐라 자바 스크립트를 사용하는 완전 반응 형 솔루션입니다.
// Call function when show dialog btn is clicked
document.getElementById("btn-show-dialog").onclick = function(){show_dialog()};
var overlayme = document.getElementById("dialog-container");
function show_dialog() {
/* A function to show the dialog window */
overlayme.style.display = "block";
}
// If confirm btn is clicked , the function confim() is executed
document.getElementById("confirm").onclick = function(){confirm()};
function confirm() {
/* code executed if confirm is clicked */
overlayme.style.display = "none";
}
// If cancel btn is clicked , the function cancel() is executed
document.getElementById("cancel").onclick = function(){cancel()};
function cancel() {
/* code executed if cancel is clicked */
overlayme.style.display = "none";
}
.popup {
width: 80%;
padding: 15px;
left: 0;
margin-left: 5%;
border: 1px solid rgb(1,82,73);
border-radius: 10px;
color: rgb(1,82,73);
background: white;
position: absolute;
top: 15%;
box-shadow: 5px 5px 5px #000;
z-index: 10001;
font-weight: 700;
text-align: center;
}
.overlay {
position: fixed;
width: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,.85);
z-index: 10000;
display :none;
}
@media (min-width: 768px) {
.popup {
width: 66.66666666%;
margin-left: 16.666666%;
}
}
@media (min-width: 992px) {
.popup {
width: 80%;
margin-left: 25%;
}
}
@media (min-width: 1200px) {
.popup {
width: 33.33333%;
margin-left: 33.33333%;
}
}
.dialog-btn {
background-color:#44B78B;
color: white;
font-weight: 700;
border: 1px solid #44B78B;
border-radius: 10px;
height: 30px;
width: 30%;
}
.dialog-btn:hover {
background-color:#015249;
cursor: pointer;
}
<div id="content_1" class="content_dialog">
<p>Lorem ipsum dolor sit amet. Aliquam erat volutpat. Maecenas non tortor nulla, non malesuada velit.</p>
<p>Aliquam erat volutpat. Maecenas non tortor nulla, non malesuada velit. Nullam felis tellus, tristique nec egestas in, luctus sed diam. Suspendisse potenti.</p>
</div>
<button id="btn-show-dialog">Ok</button>
<div class="overlay" id="dialog-container">
<div class="popup">
<p>This will be saved. Continue ?</p>
<div class="text-right">
<button class="dialog-btn btn-cancel" id="cancel">Cancel</button>
<button class="dialog-btn btn-primary" id="confirm">Ok</button>
</div>
</div>
</div>
xdialog 는 간단한 API xdialog.confirm ()을 제공합니다. 코드 스 니펫은 다음과 같습니다. 더 많은 데모는 여기 에서 찾을 수 있습니다
document.getElementById('test').addEventListener('click', test);
function test() {
xdialog.confirm('Are you sure?', function() {
// do work here if ok/yes selected...
console.info('Done!');
}, {
style: 'width:420px;font-size:0.8rem;',
buttons: {
ok: 'yes text',
cancel: 'no text'
},
oncancel: function() {
console.warn('Cancelled!');
}
});
}
<link href="https://cdn.jsdelivr.net/gh/xxjapp/xdialog@3/xdialog.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/gh/xxjapp/xdialog@3/xdialog.min.js"></script>
<button id="test">test</button>
// do work here..
. 의 기능을 수행 YES TEXT
하고 NO TEXT
거기에 갈?
NO TEXT
어디로 가나 요?
oncancel
의 마지막 매개 변수 옵션에 옵션을 추가 할 수 있습니다 xdialog.confirm(text, onyes, options)
. 자세한 내용은 다음을 참조하십시오 xdialog 기본 - 옵션