添加文本值以动态创建文本输入

时间:2012-04-25 23:15:35

标签: javascript jquery html-table

这是一切,我试图提出一个建议,它有点改变行的颜色,但它只改变一次,每一行后留下作为.odd背景颜色。

基本上我正在尝试动态添加行,这有效,掩盖输入文本字段,它起作用,从endtime_1获取值并将其放在下一个添加行的starttime_2(dynamic add)中单击addrow()按钮。然后取endtime_2(dynamic add)的值,并在点击starttime_3(dynamic add)按钮时将其放在addrow()中,依此类推等等......这是行不通的。我想用背景样式为每个奇数行着色。

<script type="text/javascript">
function maskInput(){
    $.mask.definitions['~'] = "[+-]";
    $(".time").mask("99:99 aa");

    $("input").blur(function() {
        $("#info").html("Unmasked value: " + $(this).mask());
    }).dblclick(function() {
        $(this).unmask();
    });
}
var clone;
function cloneRow(){
    var rows=document.getElementById('TimeCard').getElementsByTagName('tr');
    var index=rows.length-1;
    clone=rows[index-0].cloneNode(true);
    if (index % 2 !=0) { $(clone).addClass("odd"); }
    var inputs=clone.getElementsByTagName('input'), inp, i=0,n ;
    while(inp=inputs[i++]){
        inp.name=inp.name.replace(/\d/g,'')+(index+1);
        $('#starttime_'+index).attr('value',$('#endtime_'+index-1).attr('value'));
    }
    var select=clone.getElementsByTagName('select'), sel, i=0,n ;
    while(sel=select[i++]){
        sel.name=sel.name.replace(/\d/g,'')+(index+1);
    }
    maskInput();
    }
    function addRow(){
        var tbo=document.getElementById('TimeCard').getElementsByTagName('tbody')[0];
        tbo.appendChild(clone);
        cloneRow();
    }
    function checkDOM(){
        var rows=document.getElementById('TimeCard').getElementsByTagName('tr');
        for(var i=0;i<rows.length;i++){
        alert(rows[i].getElementsByTagName('input')[0].name);
    }
}
onload=cloneRow;
</script>

<style type="text/css">
.odd { background-color:#CCC; }
</style>

<table border='0' id='TimeCard' width='950'>
<tr class="odd">
    <td align="left" width="100"><b><i><u>Select Type</u></i></b></td>
        <td align="left" width="20">&nbsp;</td>
        <td align="left" width="100"><b><i><u>Select Property</u></i></b></td>
        <td align="left">&nbsp;</td>
        <td align="left" width="100"><b><i><u>Start Time</u></i></b></td>
        <td align="left" width="100"><b><i><u>End Time</u></i></b></td>
        <td align="left" width="20">&nbsp;</td>
</tr>
<tr class="even">
    <td align="left" width="100">
        <select name="type_1" id="type_1" class="validate[required]">
            <option selected value=''> -- Please Select -- </option>
            <option value="office">Office</option>
            <option value="work">Working</option>
            <option value="drive">Driving</option>
            <option value="break">Break</option>
            <option value="lunch">Lunch</option>
            <option value="personal">Personal</option>
    </select>
        </td>
        <td align="left" width="20">&nbsp;</td>
        <td align="left" width="100">
        <select name="propid_1" id="propid_1" class="validate[required]">
            <option selected value=''> -- Please Select -- </option>
        </select>
        </td>
        <td align="left">&nbsp;</td>
        <td align="left" width="100"><input type="text" class="time" id="starttime_1" name="starttime_1" size="10" /></td>
    <td align="left" width="100"><input type="text" class="time" id="endtime_1" name="endtime_1" size="10" /></td>
        <td align="center" width="20"><input type="button" value=' + ' onclick='addRow();' /></td>
</tr>
</table>

1 个答案:

答案 0 :(得分:0)

为纯css中的表行着色:

tr:nth-child(odd) {background-color:#CCC;}

否则,请提出有针对性的问题。