简体   繁体   中英

Dynamically append rows to a HTML table

I am able to append table rows dynamically but encounter a problem when I am embedding values.

I am using jinja2.

Example:

My input by textbox is like this:

Date From: 20130201 * id is "txtStartDate"

To: 20130205 * id is "txtEndDate"

Number: 10 * id is "txtAllotNumber"

Output should be like this:

□ 20130201 10 blank
□ 20130202 10 blank
□ 20130203 10 blank
□ 20130204 10 blank
□ 20130205 10 blank

  • □ is a checkbox

  • the blank part should be edited also.

This is the output which is incorrect:

20130210 20130205 10 blank

This is how I am appending the table:

            var chkflg = "";
            var newtrtag = '<tr class="centertext getData">';
            newtrtag += '<td class="checkGet" style="padding-left: 20px;"><input class="chkGetData" type="checkbox" name="del_param" value="{{stay_ymd}},{{allot_number}},{{delete_flag}},{{re_release_ymd}}"></td>';
            newtrtag += '<input type="hidden" id="quantity{{stock_count}}" name="quantity{{stock_count}}" value="{{allot_number}}">';
            newtrtag += '<input type="hidden" name="save[{{stock_count}}]" value="{{stay_ymd}},{{allot_number}},{{delete_flag}},{{re_release_ymd}}">';
            newtrtag += '{% set delete_flag_val = '0'%}';
            newtrtag += '{% if delete_flag %}';
            newtrtag += '{% set delete_flag_val = '1' %}';
            newtrtag += '{% else%}';
            newtrtag += '{% endif %}';
            newtrtag += '<input type="hidden" id="delflag{{stock_count}}" name="delflag{{stock_count}}" value="{{delete_flag_val}}">';
            newtrtag += '<input type="hidden" id="rerel{{stock_count}}" name="rerel{{stock_count}}" value="{{re_release_ymd}}">';
            newtrtag += '<td style="width:70%;">'+ $("#txtStartDate").val() +' </td>';
            newtrtag += '<td style="width:70%;">'+ $("#txtEndDate").val() +' </td>';
            newtrtag += '<td style="width:70%;">'+ $("#txtAllotNumber").val() +' </td>';
            newtrtag += '{% set delete_flag_chk = "" %}';
            newtrtag += '{% if delete_flag == True %}';
            newtrtag += '{% set delete_flag_chk = "Released" %}';
            newtrtag += '{% else%}';
            newtrtag += '{% set delete_flag_chk = "Unreleased" %}';
            newtrtag += '{% endif %}';
            newtrtag += '<td class="colStatus">{{delete_flag_chk}}</td>';
            newtrtag += '<td class="releaseDate">{{re_release_ymd}}</td>';
            newtrtag += '</tr>';
            $("#list_body").append(newtrtag);

The whole tbody code is like this where I am adding it:

<tbody id="list_body">
{% set stock_count = 0 %}
{% for row in release_stock_list %}
    <tr class="centertext getData">
        <td class="checkGet" style="padding-left: 20px;"><input class="chkGetData" type="checkbox" name="del_param" value="{{row.stay_ymd}},{{row.allot_number}},{{row.delete_flag}},{{row.re_release_ymd}}"></td>
        <input type="hidden" id="quantity{{stock_count}}" name="quantity{{stock_count}}" value="{{row.allot_number}}">
        <input type="hidden" name="save[{{stock_count}}]" value="{{row.stay_ymd}},{{row.allot_number}},{{row.delete_flag}},{{row.re_release_ymd}}">
        {% set delete_flag_val = '0'%}
        {% if row.delete_flag %}
            {% set delete_flag_val = '1' %}
        {% else%}
        {% endif %}
        <input type="hidden" id="delflag{{stock_count}}" name="delflag{{stock_count}}" value="{{delete_flag_val}}">
        <input type="hidden" id="rerel{{stock_count}}" name="rerel{{stock_count}}" value="{{row.re_release_ymd}}">
        <td class="colDate">{{row.stay_ymd}}</td>
        <td class="colAmount">{{row.allot_number}}</td>
        {% set delete_flag_chk = "" %}
        {% if row.delete_flag == True %}
            {% set delete_flag_chk = "Released" %}
        {% else%}
            {% set delete_flag_chk = "Unreleased" %}
        {% endif %}
        <td class="colStatus">{{delete_flag_chk}}</td>
        <td class="releaseDate">{{row.re_release_ymd}}</td>
        {% set stock_count = stock_count + 1 %}
    </tr>
{% endfor %}
</tbody>

Thanks for the help.

Usually, this sort of thing is done by cloning existing rows; you might have a hidden template row you'd clone. This avoid all sorts of issues such as yours. Have a look at this question .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM