1

キャンセル ボタンがページの保存を処理しないようにするにはどうすればよいですか。

要素 ID 'item' が変更されたときにのみプロンプトを開始しようとしています。

OK と CANCEL のプロンプトは非常によく表示されますが、キャンセルしてもページの送信は停止しません。

<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}" />   
4

1 に答える 1

2

インライン イベント ハンドラ ( などonclick="") を使用していて、デフォルト イベントの発生を停止する必要がある場合、イベント ハンドラ関数から false を返すだけでは十分ではありません。returnインライン イベント ハンドラーを指定する場合は、関数名の前にも付ける必要があります。

 onclick="return isProductNumChanged(document.getElementById('item').value);"
于 2011-05-05T17:45:12.350 に答える