2013-10-03 4 views
1

Мой HTML код выглядит следующим образом:Почему вызов не идет в функцию jQuery в следующем сценарии?

<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; 
     } 

} 
+0

, что вы имеете в виду, ваш вызов Ajax не получает через или JS функции в не называется? – Anand

+0

@Anand: Функция js не вызывается. –

+0

В вашем коде также есть несколько других ошибок. Эта функция должна быть вызвана одним нажатием кнопки, не так ли? – Anand

ответ

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 в настоящее время вниз. Я буду стараться, чтобы сделать одну скрипку, когда он будет снова

JSFIDDLE LINK

+0

: Спасибо за ваш ответ. теперь jsFiddle. –

+0

снова опустился. Я пытаюсь воспроизвести ваш сценарий – Anand

+0

: Я внес изменения, которые вы предложили, но функция jQuery не вызвана. –

Смежные вопросы