2016-10-25 7 views
0
<input type = "button" onclick="test()"> 

のJSのサンプルコードのonClick:私はボタンをクリックしたときに、他の目的のために実行test()を停止する必要がは、要素によって実行Javascriptをonlick機能を停止する必要がある機能

$('input[type=button]').on('click',(function(e){ 
     e.preventDefault(); 
     if(!window.confirm(message)) { 
     return false; 
     } 
    })); 

を。しかし、現状ではの代わりにfalseが返されます。誰も提案を与えることができますか?

+0

'onclick'属性を削除しますか? –

+0

@FrédéricHamidiしかしマークアップは自動的に生成されますので、削除することはできません。 – imran

+1

@imran - 要素をターゲットにできる場合は、ハンドラを削除できません。 'element.removeAttribute( 'onclick');の問題です。ここで、elementはボタンへの参照です。 ;) – enhzflep

答えて

1

あなたはHTMLマークアップからのonclickイベントを削除し、ユーザーが確定しない場合は、あなたのコードに手動で追加することができます。どの関数がonclickマークアップ属性に関連付けられているかを知る必要があり、状況によって変化すると複雑になることがあります。これはあなたのために働くでしょうか?

// we remove the onclick attribute from the HTML 
$('input[type=button]').removeAttribute('onclick'); 

$('input[type=button]').on('click',(function(e){ 
    if(!window.confirm(message)) { 
     // if user does not confirm, do nothing 
     return false; 
    } else { 
     // if user does confirm, then proceed with the test() function 
     test(); 
    } 
})); 
0

は、最初のonclickの前にアクティブのバインドを解除してください:

$('input[type=button]').unbind('click'); 
$('input[type=button]').on('click',(function(e){ 
     e.preventDefault(); 
     if(!window.confirm(message)) { 
     return false; 
     } 
    })); 
関連する問題