[javascript] “예”및“아니요”옵션으로 대화 상자를 만드는 방법은 무엇입니까?

작업을 수행하고 데이터를 데이터베이스에 저장하는 버튼을 만들 것입니다.

사용자가 버튼을 클릭하면 JavaScript 경고가 “예”및 “취소”옵션을 제공하기를 원합니다. 사용자가 “yes”를 선택하면 데이터가 데이터베이스에 삽입되고, 그렇지 않으면 아무런 조치도 수행되지 않습니다.

이러한 대화 상자를 표시하려면 어떻게합니까?



답변

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.');
}


답변

var answer = window.confirm("Save data?")
if (answer) {
    //some code
}
else {
    //some code
}

window.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>


답변

인라인 JavaScript를 피하십시오 -동작을 변경하면 코드의 모든 인스턴스를 편집하는 것이 의미가 있습니다.

보다 명확한 방법은와 같은 요소에서 data 속성을 사용하는 것 data-confirm="Your message here"입니다. 아래 코드는 동적으로 생성 된 요소를 포함하여 다음 작업을 지원합니다.

  • abutton클릭
  • 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>

JSFiddle 데모


답변

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


답변

이 플러그인은 사용 하기 쉬운 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>