Зависит от данных таблицы всплывающего окна, данные родительской таблицы, показывающие элемент, отличаются - PullRequest
0 голосов
/ 01 октября 2018

У меня есть всплывающее окно мод, как этот.enter image description here

Когда я нажимаю кнопку «ДОБАВИТЬ», все данные из всплывающей таблицы показываются в таблице родителя.Как этот.enter image description here

Проблема в том, что я не хочу показывать знак плюс "+", если в textbox2s нет данных.Вот код на popup.js

function add_to_prent_table(){

var popupTable = [];
var i = 0;

$('#testing > tbody > tr').each(function () {

    popupTable[i] = [
        $(this).find("#test_number").val(),
        $(this).find("#type_1").val(),
        $(this).find("#type_2").val(),
        $(this).find("#place_1").val(),
        $(this).find("#place_2").val(),
        ];
    i++;

    var newRow = '<tr>'+
    '<td id ="td_center">'+
        $(this).find("#test_piece_number").val() +
    '</td>'+
    '<td id ="td_center">'+
        $(this).find("#type_1").val() + ' + ' +
        $(this).find("#type_2").val() +
    '</td>'+
    '<td id ="td_center">'+
        $(this).find("#place_1").val() + ' + ' +
        $(this).find("#place_2").val() +
    '</td>'+
    '</tr>';

    $('#testing_parent tbody').append(newRow);
});

}

Как я могу это исправить?

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Это грязно, но вы можете заменить первый ' + ' следующим:

$(this).find("#type_2").val() ? ' + ' : ''

И заменить второй ' + ' на

$(this).find("#place_2").val() ? ' + ' : ''

В основном вы ищете, чтобы увидетьесли # type_2 и # place_2 имеют значения.Если они это сделают, добавьте «+».Если нет, то ничего не добавляйте.

0 голосов
/ 01 октября 2018

Просто вы можете добавить условие перед добавлением знака плюс, как показано ниже,

 var newRow = '<tr>'+
    '<td id ="td_center">'+
        $(this).find("#test_piece_number").val() +
    '</td>'+
    '<td id ="td_center">'+
        $(this).find("#type_1").val() 
        if($(this).find("#type_2").val() != "")
        {
            ' + ' + $(this).find("#type_2").val()
        }
    '</td>'+
    '<td id ="td_center">'+
        $(this).find("#place_1").val() 
        if($(this).find("#place_2").val() != "")
        {
            ' + ' + $(this).find("#place_2").val()
        }
    '</td>'+
    '</tr>';
0 голосов
/ 01 октября 2018

Попробуйте это;

function add_to_prent_table() {

var popupTable = [];
var i = 0;

$('#testing > tbody > tr').each(function () {

    var testNumber = $(this).find("#test_number").val();
    var firstType = $(this).find("#type_1").val();
    var secondType = $(this).find("#type_2").val();
    var firstPlace = $(this).find("#place_1").val();
    var secondPlace = $(this).find("#place_2").val();

    popupTable[i] = [
        testNumber,
        firstType,
        secondType,
        firstPlace,
        secondPlace,
    ];

    i++;

    var newRow = '<tr>' +
        '<td id ="td_center">' +
        $(this).find("#test_piece_number").val() +
        '</td>' +
        '<td id ="td_center">' +
            firstType + secondType ? (' + ' + secondType) : '' +
        '</td>' +
        '<td id ="td_center">' +
            firstPlace + secondPlace ? (' + ' + secondPlace) : '' +
        '</td>' +
        '</tr>';

    $('#testing_parent tbody').append(newRow);
});
}
...