2011-05-05 73 views
1

如何使取消按鈕不處理頁面上的保存。我可以在函數內使用confirm()提示嗎?怎麼樣?

我試圖只在元素id'item'被更改時啓動提示。

我得到確定和取消提示非常好。但取消不會停止提交頁面。

<script type='text/javascript'> 
var strProductNum = document.getElementById('item').value; 
function isProductNumChanged(itemValue){ 
    if (strProductNum != itemValue){ 
     var valueYesNo = confirm('Really change this Product Number to ' + document.getElementById('item').value + '?'); 
    } 
    if (valueYesNo){ 
     return true; 
    }else{ 
     return false; 
    } 
} 
</script> 

這是我如何解決這個問題。

<h:commandButton id="save1" 
       onclick="isProductNumChanged(document.getElementById('item').value);" 
       value="Save" action="#{itemHome.saveItem}" /> 
+2

你能告訴我們你是如何設置此功能運行時,提交表單(如:'<形式的onsubmit =「isProductNumChanged」>'還是什麼? – 2011-05-05 17:35:32

+2

你的函數沒有什麼關係的形式提交,所以直到兩者連線在一起,你不會阻止保存 – Ben 2011-05-05 17:36:38

回答

2

當使用內聯事件處理程序(如onclick=""),你需要停止違約事件發生,這是不夠的,從事件處理函數返回false。當您指定內聯事件處理程序時,還必須在函數的名稱前放置return

onclick="return isProductNumChanged(document.getElementById('item').value);" 
+1

+1我從來沒有注意到這一行代碼我的問題...簡單 – 2011-05-05 17:51:12

+0

@Caspar OP後來添加它,我正在等待因爲該函數應該基於問題描述進行工作,所以我懷疑它必須是內聯處理程序。感謝upvote。 – kapa 2011-05-05 17:54:05

相關問題