4

jspのレガシープロジェクトに以下のコードがあります。

<tr>
    <th colspan="2">Customer</th>
    <td colspan="2">
      <a href="myAction.do" target="view">CustomerLink</a></td>
</tr>

CustomerLinkをクリックしたときの動作を少し変更したい。アクションを実行する前に、Javascript関数で処理を実行したいだけです。Javascript関数でhrefリンクの動作をシミュレートする方法がわかりませんか?

私が試したこと:-

<tr>
    <th colspan="2">Customer</th>
    <td colspan="2">
      <a href="javascript:customerLinkClicked('myAction.do')" target="view">CustomerLink</a></td>
</tr>

//Javascript関数

function customerLinkClicked(path)
{

    // simulate the href link behaviour, not sure how to do this


}
4

5 に答える 5

7
<a href="javascript:customerLinkClicked('myAction.do')" target="view">CustomerLink</a>
<script>
    function customerLinkClicked(path) {
        if (confirm('message'))
            document.location.href = path;
    }
</script>
于 2012-10-12T05:18:58.073 に答える
0

これを試してください。コピーして貼り付けるだけです

<script type="text/javascript">
function fnc()
{
if(confirm("Do you really want to go?"))
{window.open("yoursitename.do");}
}
</script
<a href="javascript:fnc()">click</a>
于 2012-10-12T05:25:23.253 に答える
0

インラインjsは避けるべきですが、現在のシナリオでは。

    function customerLinkClicked(event) {
        if(!confirm("Are you sure ?")) {
              if(event.preventDefault) {
                  event.preventDefault();
              }
              else {
                   event.returnValue = false;
              } 
        } 
    }

HTML

<a href="myAction.do" onclick="customerLinkClicked(event);" target="view">CustomerLink</a>
于 2012-10-12T05:26:43.373 に答える
0

どうですか:

<a href="myAction.do" onclick="customerLinkClicked()" target="view">CustomerLink</a>

最初にonclickイベントハンドラーが処理され、次に場所がmyAction.doに変更されます。

場所の変更を防ぎたい場合は、次のように書くことができます

onclick="return customerLinkClicked();"

戻り値(true、false)に応じて、場所の変更が発生します。か否か。

于 2012-10-12T05:23:23.110 に答える
0

window.confirmを使用して、選択に応じて true または false を返す確認ダイアログを取得できます。その後、event.preventDefaultメソッドによりデフォルト動作が解除される場合があります。

例: http://jsfiddle.net/Klaster_1/nXtvF/

$("a").on("click", function(event) {
    if(!window.confirm("Proceed?")){
        event.preventDefault()
    };
});

その中でjQueryを使用しましたが、それは完全にオプションです。

于 2012-10-12T05:19:24.390 に答える