2017-02-04 43 views
-1

爲了更清楚。 JavaScript。 我需要複製confirm()的行爲,但不使用confirm()xd。使提交事件等待用戶輸入? JS

所以基本上,我必須停止提交併等待來自用戶的真/假值並提交表單。

現在我正在阻止表單提交,然後當用戶單擊「是」時,強制使用.submit()再次提交。

但我不知道是否有任何方法來保持on提交事件等待來自另一個函數的真或假返回。

謝謝。

編輯:我剛剛意識到我不能做.submit()導致它將再次啓動onsubmit。

+0

也許看看jQuery來防止提交和做你的事。 – Rienk

+0

顯示一些effot所以人們可以幫助你。顯示一個div或類似的東西,然後附加偵聽器來識別點擊選項,然後運行回調。 – Gacci

+0

使用按鈕事件顯示確認,確認後觸發提交 – charlietfl

回答

0

隨着確認():

document.getElementById('submit-button').onclick = function() { 
 
    if(confirm('Are you sure you want to submit?')) { 
 
    // Do something 
 
    } 
 
    // Don't do something 
 
}
<body> 
 
    <input type="text" name="input" /> 
 
    <button id="submit-button" type="submit">Submit</button> 
 
</body>

沒有確認():

var submit = document.getElementById('submit-button'); 
 
var confirm = document.getElementById('confirm-button'); 
 
var cancel = document.getElementById('cancel-button'); 
 

 
document.getElementById('submit-button').onclick = function() { 
 
    submit.style.display = 'none'; 
 
    confirm.style.display = 'inline'; 
 
    cancel.style.display = 'inline'; 
 
} 
 

 
document.getElementById('confirm-button').onclick = function() { 
 
    // Submit form 
 
} 
 

 
document.getElementById('cancel-button').onclick = function() { 
 
    submit.style.display = 'inline'; 
 
    confirm.style.display = 'none'; 
 
    cancel.style.display = 'none'; 
 
}
<body> 
 
    <input type="text" name="input" /> 
 
    <button id="submit-button" type="submit">Submit</button> 
 
    <button id="confirm-button" type="submit" style="display: none;">Confirm</button> 
 
    <button id="cancel-button" type="submit" style="display: none;">Cancel</button> 
 
</body>