2013-11-21 148 views
0

無法獲取文本框的值無法獲取文本框的值

我想下面的代碼

$(document).on('focusout', '.barcode', function(event){ 
       event.preventDefault(); 

       var pid=$(this).parents('.row').attr('id'); 
       alert(pid); 
       var bcd=$(pid+' .barcode').val(); 
       alert($(pid+' .barcode')); 
       alert(bcd); 
       var datastr='barCode='+bcd; 
       alert(datastr); 
      }); 

我想它下面的HTML

<tr class="row" id="item10"> 
            <td><input type="text" name="barcode" class="barcode" style="width: 50px"/></td> 
            <td><input type="text" name="type" class="type" style="width: 50px"/></td> 
            <td><input type="text" name="color" class="color" style="width: 50px"/></td> 
            <td><input type="text" name="qty" class="qty" style="width: 50px"/></td> 
            <td><input type="text" name="price" class="price" style="width: 50px"/></td> 

           </tr> 


    value of var `id` is correct but `bcd` and `dataStr` is not correct. 

請看有什麼問題

+0

請使用一致的代碼縮進代碼。 –

回答

3

你缺少「#」id指示燈

var bcd=$("#"+pid+' .barcode').val(); 

var pid="#"+$(this).parents('.row').attr('id'); 

而且<tr>必須<table>包裹櫃面你不是。

DEMO

0

而且,你是裏面

$(document).ready(function() { 
...... 
}); 
+1

這不是因爲他使用$(document).on(' – Anton

+0

好吧,謝謝,我是jquery的新手。 –

2
 $(document).on('focusout', '.barcode', function(event){ 
      event.preventDefault(); 
      alert($(this).val()); 
     }); 

你可以使用$(本).VAL()來獲得該元素的值

+0

+1沒有想到那個^^我太專注於修復他的代碼 – Anton