我正在尝试选择输入的复选框类型,然后附加表格列

时间:2013-04-05 19:11:52

标签: jquery

我有多个输入类型复选框 - 如果选中其中任何一个,我想附加一列(JUST ONE TIME) - 即如果在第一个之后标记了任何其他复选框类型,我不会想要再次添加列,它一直在做。我确实在每个复选框类型输入中添加了一次PER。但是,我还想在整个文档中添加一列(即在页面上的所有复选框中)。

这是代码的相关部分

<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>");

非常感谢任何想法。

2 个答案:

答案 0 :(得分: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>");
});

答案 1 :(得分:1)

关闭你的功能:

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

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