1

私は単純なjavascript確認コードを使用しています:

function test_confirm (str)
{
    str = (str == '0')? 'Are you sure?' : str

    return (confirm(str))? true : false
}

<a href="http://example.com" onclick="return test_confirm(0)">Test</a>

これは通常、Jquery Mobileを使用する場合を除いて機能し、ボタンOKCancelボタンの両方がURLに進みます。予想される動作は、CancelボタンがURLに進まないことです。

つまり、htmlに以下を追加してJqueryMobileを使用しますhead

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

confirm()Jquery Mobileでjavascript関数を機能させるために知っておくべきことはありますか?


Phill Paffordの更新:

プレーンHTMLで機能しますが、これは実際に私が行っていることであり、PHPを使用して同じページにリダイレクトした後は機能しませんheader('location:')

このページには次のものlistが含まれています。

<a href="list/delete/1" class="customClick" data-str="0">Delete 1</a>

<a href="list/delete/2" class="customClick" data-str="0">Delete 2</a>

list/deleteアクションには次のようなものが含まれています 。

$rest->delete($id);
header('location: http://example.com/list');

URLをクリックするとわかるようにlist/delete/1、削除手順が続行され、listページにリダイレクトされます。それが機能しなくなるところです。

リダイレクトが発生するとすぐに、確認ダイアログは機能しなくなります。

4

3 に答える 3

1

このようなものはあなたのために働きますか?

JS

$('.customClick').on('click', function() {
    var str = $(this).attr('data-str');
    str = (str == '0')? 'Are you sure?' : str;

    return (confirm(str))? true : false;
});

HTML

<a href="http://jsfiddle.net/8CDc5/" class="customClick" data-str="0">Test</a>​
于 2012-11-08T03:04:56.420 に答える
0

私も同じ問題を抱えていました。「falseを返す」のように見えます。伝播を停止していなかったので、とにかくリンクをたどりました。falseを返す前に、伝播を明示的に停止することで解決しました。

function test_confirm (e, str)
{
    str = (str == '0')? 'Are you sure?' : str

    if (!confirm(str)) {            
        e.stopPropagation();
        return false;
    }
    return true;
}


<a href="http://example.com" onclick="var e=arguments[0] || window.event; return test_confirm(e,0)">Test</a>
于 2013-01-10T00:48:51.673 に答える
0

この属性を追加する

data-ajax = "false"

<a data-ajax="false" href="http://example.com" onclick="return test_confirm(0)">Test</a>
于 2013-12-19T06:17:16.640 に答える