0

我在我的页面中使用 JQuery。我的页面的一部分是 Google Visualization 表,尝试在该表中使用 JQuery 会导致错误。基本上我对所有具有类“lala”的表单使用了表单 submit() 事件。正如您在下面的示例中所见,Google 可视化表之外的两种形式都可以正常工作。但是,表格内的表格不响应事件......有什么想法吗?(示例可在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

您可以使用google.visualization.events.addListener而不是使用 $(document).ready(function) 。将 drawTable() 的最后两行更改如下:

    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

您有两个input具有相同 id 的 s - 通常不是一个好主意,特别是如果您试图input通过 id 获取 an 的值。

于 2010-03-05T22:44:48.243 回答