0

特定のフラグがトリガーされたときにパスワード リセット フォームを表示しようとしています。password_changed_flag がない場合、ユーザーにパスワードの変更を促す次の基本的なコードがあります。応答に応じて、ユーザーは「はい」または「いいえ」というメッセージを受け取ります。コードは次のとおりです。

<?php if(!$password_changed_flag){
        <script type="text/javascript">     
        $('#ajaxShield').show();        
        var pw = <?php echo json_encode($this->session->userdata('password')) ?>;
        $.prompt("Your auto-assigned password must be changed.", pw,
        function(){
            $.msg("Yes.",{header:'Yes', live:10000});
            $('#ajaxShield').hide();
        },
        function(){
            $.msg("No.",{header:'No', live:10000});
            $('#ajaxShield').hide();
        });                 
        </script>
<?php } ?>

$.prompt私の唯一の問題は、 andを使用する代わりに、$.msg本当に必要なのはフォームを表示することです。これは、フォームを起動する他の場所にあるコードです。

<a href="#ChangePW" return false; class="login-window" >Change Password</a>

私の問題は、ハイパーリンクをクリックしてフォームを表示できることだと思いますが、ハイパーリンクを使用してフォームを表示する代わりに、上記のコードのように、password_changed_flag がないときにフォームを表示できるようにする必要があります。というわけで、どうにか上位コードブロック内の下位コードブロックをシミュレートする必要がありそうです。

ハイパーリンクに依存せずに、ハイパーリンクに応答して何が起こるかをシミュレートするにはどうすればよいですか?

何か案は?ありがとう。

4

2 に答える 2

1

Jqueryでクリックをトリガーできます

$('#triggerClick').trigger('click');

<a href="#ChangePW" class="login-window" id='triggerClick'>Change Password</a>

マークアップが示唆するファンシーボックスを使用している場合は、次も使用できます。

$("#triggerClick").fancybox().trigger('click');
于 2012-12-01T19:14:50.863 に答える
1

リンクが行うように見えるアンカー名に移動したい場合#ChangePWは、次のように JavaScript で行うことができます。

self.location.hash = "ChangePW";
于 2012-12-01T18:06:13.163 に答える