2011-01-06 27 views
0

このコードで何が問題なのか教えていただけますか?セレクタ'#del[' + cid + ']'を認識していないようです。私のPHPコード内のIDの正確な名前はどれですか。jQueryで変数を使用して関数を実行する

$(function() { 
    var cid = '<?=$row['c_id'];?>'; 
    $('#del[' + cid + ']').click(function() { 
     alert('clicked!'); 
     var oldqty = <?=$row['qty'];?>; 
     var qtyID = "'" + '#qty' + cid + "'"; 
     alert(qtyID); 
     if ($(qtyID).is(':checked')) { 
      $(this).(function() { 
       $(this).val(0); 
      }); 
     }; 
     if($(qtyID).not(':checked')) { 
      $(this).(function() { 
       $(this).val(0); 
      }); 
     }; 
    }); 
}); 

ここ$row['c_id']を実装するPHPコードです:その後、

echo "<input class=\"number aln_center\" type=\"text\" name=\"qty[" . $row['c_id'] . "]\" id=\"qty" . $row['c_id'] . "\" value=\"" . $row['qty'] . "\" size=\"3\" onchange=\"return validateChgMLQty('qty" . $row['c_id'] . "'," . $row['qty'] . ");\" />\n"; 
echo "<input type=\"hidden\" name=\"telco[" , $row['c_id'] . "]\" id=\"telco" . $row['c_id'] . "\" value=\"" . $row['btelco'] . "\" />\n"; 
echo "<br />Delete\n"; 
echo "<input type=\"checkbox\" name=\"del[" . $row['c_id'] . "]\" id=\"del" . $row['c_id'] . "\" />\n"; 

が、私は「削除」チェックボックスがクリックされた場合は「0」に変更し、入力文で値を取得しようとしているとチェックしないと元の内容に戻ります。最初のアラートボックスにも到達しないので、qtyIDとは何も関係なく、ソースを表示するときに、 'var cid'行にPHP変数$row['c_id']から渡された正しい整数が入力されます。

+0

'cid'は何ですか?要素のどの属性が見つかっていますか? – lonesomeday

+0

'$ row ['c_id']'とは何ですか? –

+0

qtyIDの前後に '' '"'があるのはなぜですか?これは '''ID '"'のような文字列を作成しますが、これはうまくいきません。 –

答えて

0
var qtyID = "'" + '#qty' + cid + "'"; 

この行は問題です。文字列の先頭と末尾に引用符を付けるべきではありません。

これは、"'#qty6'"のような文字列を作成します。これはjQueryセレクタでは機能しません。

それだけで次のようになります。

var qtyID = '#qty'+cid; 

このセレクタ:

$('#del[' + cid + ']') 

は次のようになります。すべての

$('#del'+cid) 
0

ありがとう!

最終的な解決策た:

$(function() { 
    var cid = "<?=$row['c_id'];?>"; 
    var oldqty = "<?=$row['qty'];?>"; 
    $('#del' + cid).change(function() { 
     if ($('#del' + cid).is(':checked')) { 
      $('#qty' + cid).val(0); 
      return; 
     }; 
     if($('#del' + cid).not(':checked')) { 
      $('#qty' + cid).val(oldqty); 
      return; 
     }; 
    }); 
}); 
関連する問題