2011-05-05 79 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

相关问题