0

我有多个输入类型复选框-如果选中其中任何一个,我想附加一列(仅一次)-即,如果在第一个复选框类型之后标记了任何其他复选框类型,我不想添加再次列,它确实继续这样做。对于每个复选框类型的输入,我确实只添加了一次。但是,我还想在整个文档中添加一列(即在页面上的所有复选框中)。

这是代码的相关部分

<table id="edhist_table" >
<tr id="table_headings">
    <th>Graduated?</th>     
</tr>

    <tr>            
       <td><input type="checkbox" name="college_grad" value="yes">yes</input></td>

</tr>   
<tr id='grad_part'>

    <td><input type="checkbox" name="grad_grad1" value="yes">yes</input></td>   

</table>


<script>
//if any of the checkboxes are checked  - shoudl append column  
$( "[type=checkbox]").one("click",function() {
    $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");

任何想法都非常感谢。

4

2 回答 2

1

每个.one元素最多执行一次,这意味着它将为每个元素触发一次(这会导致重复。您需要检查元素是否已添加,如果未添加。您可以将其更改为:

$( "[type=checkbox]").one("click",function() {
   if ( $( "#table_headings #degree_heading" ).length==0)
      $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");
});
于 2013-04-05T19:13:55.923 回答
1

只需关闭您的功能:

$( "[type=checkbox]").one("click",function() {
    $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");
}); // <-- Here

演示:http: //jsfiddle.net/pYx6b/

于 2013-04-05T19:14:36.137 回答