2014-02-15 38 views
0

無論出於何種原因,當對服務器進行AJAX調用時,控制檯總是說我分配給它的變量參數在前面已鏈接的函數中是完全有效的它來。我不斷收到的錯誤是:由於未定義的變量而無法通過AJAX調用

Uncaught TypeError: Cannot call method 'split' of undefined. 

任何幫助,非常感謝。

$("body").on("click", ".edit_tr", function() { 
    var ID = $(this).attr('id'); //This is valid. It works. 
    var split = ID.split('_'); 
    $("#first_" + split[1]).hide(); 
    $("#last_" + split[1]).hide(); 
}).change(function() { 
    var ID = $(this).attr('id'); //This keeps coming back as undefined. 
    var split = ID.split('_'); 
    var first = $("#first_input_" + split[1]).val(); 
    var last = $("#last_input_" + split[1]).val(); 
}); 

而且一些相關的PHP/HTML:

<tr id="item_<?php echo $id; ?>" class="edit_tr"> 
    <td> 
     <a href="#" class="del_button" id="del-<?php echo $id; ?>">Delete Record</a> 
    </td> 
    <td class="edit_td"> 
     <span id="first_<?php echo $id; ?>" class="text"> 
      <?php echo $firstname; ?> 
     </span> 
     <input type="text" value="<?php echo $firstname; ?>" size="8" class="editbox" id="first_input_<?php echo $id; ?>" /> 
    </td> 

    <td class="edit_td"> 
     <span id="last_<?php echo $id; ?>" class="text"> 
      <?php echo $lastname; ?> 
     </span> 
     <input type="text" value="<?php echo $lastname; ?>" size="8" class="editbox" id="last_input_<?php echo $id; ?>" /> 
    </td> 
</tr> 
+0

當你替換'var ID = $(this).attr('id'); ''var ID = $(「Body」)。attr('id');'? – Popo

+0

我得到相同的錯誤;身體沒有附加身份證。 –

回答

2

您在更改處理的this價值爲界body元素。您的身體元素沒有該ID。我要麼這樣做:

$(".edit_tr").on("click", function() { 

    ... 

}.change(...); 

或分別附加更改事件.edit_tr

相關問題