0

ページで JQuery を使用しています。私のページの一部は Google ビジュアライゼーション テーブルであり、このテーブル内から JQuery を使用しようとするとエラーが発生します。以下の例でわかるように、Google Visualization テーブルの外側にある 2 つのフォームは正常に機能します。ただし、テーブル内のフォームはイベントに応答しません...何かアイデアはありますか? (例はhttp://jsbin.com/izone/2にあります)

HTML

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
 <div id='table_div'></div>
  <form class="lala"><input type="text" id="textv" value="Outer Text 1" size="5"><input type="submit" value="Go!"></form>
  <form class="lala"><input type="text" id="textv" value="Outer Text 2" size="5"><input type="submit" value="Go!"></form>
</body>
</html>​

Javascript

$(document).ready(function(){
      $("form.lala").submit(function() {
        alert($('#textv',this).val());
      });      
});

google.load('visualization', '1', {packages:['table']});
      google.setOnLoadCallback(drawTable);
      function drawTable() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Form');
        data.addRows(1);
        data.setCell(0, 0, '<form class="lala"><input type="text" id="textv" value="Inner Text" size="5"><input type="submit" value="Go!"></form>');

       var table = new google.visualization.Table(document.getElementById('table_div'));
       table.draw(data, {'allowHtml':true});
      }​

ありがとう!ジョエル

4

2 に答える 2

0

$(document).ready(function)を使用する代わりに、google.visualization.events.addListenerを使用できます。drawTable()の最後の2行を次のように変更します。

    var table = new google.visualization.Table(document.getElementById('table_div'));
    google.visualization.events.addListener(table, 'ready', function() {
        $("form.lala").submit(function() {
            alert($('#text-in-form',this).val());
        });
    });
    table.draw(data, {'allowHtml':true});

テーブルの入力テキストのIDを「text-in-form」に変更したことに注意してください。

于 2011-05-08T05:07:10.267 に答える
0

同じ id を持つ2 つinputの s があります。特に id で の値を取得しようとしている場合は、一般的には良い考えではありませんinput

于 2010-03-05T22:44:48.243 に答える