1

私のHTMLコードは次のとおりです。

<span class="c-bl-btn c-mail-btn-another"><input type="button" class="more send_email" name="" id="" value="Email Invoice" data="../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101"></span>

$('.send_email').click(function (e) {
    e.preventDefault();

    var ans=confirm("Are you sure to Email this invoice?");
      if(!ans) {
            return false;
      }

    var post_url = $(this).attr('href');    
    $.ajax({
        url: post_url,
        type : 'get',
        dataType: 'json',
        success: function(data) {
            var status       = data.status;
            var dialog_title = "Email Invoice";
            var message      = data.msg; 

             if(status == 'success') {
                 var $dialog = $("<div class='ui-state-success'></div>")
                 .html("<p class='ui-state-error-success'>"+message+"</p>")
                 .dialog({
                     autoOpen: false,
                     modal:true,
                     title: dialog_title,
                     width: 500,                       
                     buttons:{
                         'OK': function() {
                             $(this).dialog('close');   

                         }                           
                     }

                 });                    
             } else {       
                 var $dialog = $("<div></div>")
                 .html("<p class='ui-state-error-text'>"+message+"</p>")
                 .dialog({
                     autoOpen: false,
                     modal:true,
                     title: dialog_title,
                     width: 500,                       
                     buttons:{
                         'OK': function() {
                             $(this).dialog('close');
                         }                             
                     }                            
                 });                         
             }  
              $dialog.dialog('open'); 
        }
    });
});

また、firebug コンソールにエラーはありません。jQuery 1.9 を使用しています。しかし、JavaScript関数を呼び出すと、呼び出しが行われます。私は多くのことを試みましたが、満足のいく解決策が得られませんでした。jQuery関数を呼び出すのを手伝ってくれる人はいますか? 前もって感謝します。次のコードを使用してjavascript関数を呼び出すと、呼び出されます。

<span class="c-bl-btn c-mail-btn-another"><input type="button" class="more send_email" name="" id="" value="Email Invoice" data="$control_url}modules/transactions/view_transactions.php?op=email_invoice&txn_no={$user_transaction_details.transaction_no}&user_id={$user_id}" onclick="open_win()"></span>

function open_win()
{
var ans=confirm("Are you sure to Email this invoice?");
      if(!ans) {
            return false;
      }

}
4

1 に答える 1

2

私が気づいたあなたのコードには他にもいくつかの間違いがあります。

  1. クラスを持つボタンのクリックでこのコードを呼び出す場合"send_email" - <input type="button" class="more send_email" name="" id="" value="Email Invoice" data="../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101">

入力タグが適切に形成されておらず、見逃していることがわかります"/"

2. ボタン (つまり$(this)) の場合、 は使用できません$(this).attr('href'); 。ハイパーリンクにのみ当てはまります。

3. data投稿の場所を属性に保存したようです。data-attributeName代わり にすべきです。

だからそうあるべきだdata-url = "../modules/transactions/view_transactions.php?op=email_invoice&txn_no=1001&user_id=101"

次の方法でアクセスできます $(this).data("url")

JSFiddle は現在停止しています。それが再び立ち上がったときに、私は1つのフィドルを作ろうとします

JSFIDDLE リンク

于 2013-10-03T10:47:29.257 に答える