2013-10-23 33 views
0

爲什麼我會得到下面的下面的錯誤:的jQuery的onclick不發送數據

Uncaught TypeError: Object [object global] has no method 'data'

HTML:

$attributes = array('class' => 'main post', 'onsubmit' => 'validateModules(event)', 'dataid' => $moviesparx_website_id); echo form_open("admin/websites/{$website_id}/page/op/{$action}/{$id}", $attributes); ?> 

    <ul style="width: 25%; border-right: 1px solid #ccc; padding-right:10px;" class="postForm"> 
     <li> 
      <input style="width:100%;" placeholder="Page Title" id="post_title" name="post_title" onclick="urlCheck()" dataid="<?php echo website_id;?> type="text" value="<?php echo set_value('post_title', $post['post_title']); ?>" /> 
      <?php echo form_error('post_title'); ?> 
     </li> 

JS:

function urlCheck() 
{ 
     var id = self.data("id"); 

     $(".postForm").on('click', '#post_title', function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      url  : '<?=base_url()?>/page/op', 
      data  : { post_title : $("#post_title").val(), 'website_id' : id }, 
      type  : 'POST', 
      success : function(resp){ 
       alert(resp); 
      }, 
      error : function(resp){ 
       console.log("Error in ajax request"); 
      } 
     }); 
    }); 
}; 
+0

問題是單擊事件處理程序永遠不會被調用,或者ajax請求正在返回意外的事情?另外,發佈生成的HTML,JS而不是服務器端可能會更有幫助。 – mnoble01

+0

@makla謝謝 - 因爲它從來沒有被稱爲,如果我能解決這個問題,我應該對服務器端的「信息」甜心 –

+0

問題是JS代碼段的第3行。它看起來並不是'self'是一個jQuery元素。因此.data()不存在。 – richardaday

回答

1
function urlCheck() { 
    var id = self.data("id"); 

    $(".postForm").on('click', '#post_title', function (e) { 
     e.preventDefault(); 
     $.ajax({ 
      url: '<?=base_url()?>/page/op', 
      data: { 
       post_title: $("#post_title").val(), 
        'website_id': id 
      }, 
      type: 'POST', 
      success: function (resp) { 
       alert(resp); 
      }, 
      error: function (resp) { 
       console.log("Error in ajax request"); 
      } 
     }); 
    }); 
} 

urlCheck(); <-- did you add this line ? 
+0

是的,我做了 - 我的問題是,它從未被稱爲 –

+0

http://jsfiddle.net/tutspack/b7jqa/3/ – underscore

+0

謝謝我改變了問題,因爲我的工作:)你能幫忙嗎? –