Я пытаюсь динамически добавить строку с формой внутри таблицы, щелкнув по кнопке. Вот код кусок JS:Динамически добавленная строка не визуализируется HTML
$(document).ready(function() {
window.can_add_bank_row = true;
$('#add_bank_acc_btn').on('click', function() {
addBankAccRow();
});
});
/**
* Adds a table row with fields to add a bank account to the user's profile.
*/
function addBankAccRow() {
if (window.can_add_bank_row) {
var warning_msg = "You are about to add a new bank account for this user.\n\nAre you sure?";
$('<tr>' +
'<form id="addNewBankAccountForm" method="POST" onsubmit=\"return confirm(\'' + warning_msg + '\');\">' +
'</tr>').insertBefore('#bank_accs_tbl > tbody > tr:first');
$('#addNewBankAccountForm').html(
'<td></td>' +
'<td><select id="bank_type_dropdown">' +
'<option value="international">International</option>' +
'<option value="sepa">SEPA</option>' +
'<option value="interac">Interac</option>' +
'<option value="paypal">PayPal</option>' +
'</select></td>' +
'<td><input name="add_bank_label_input" type="text"></td>' +
'<td><input name="add_bank_currency_input" type="text" style="width: 50px;"></td>' +
'<td><input name="add_bank_min_transfer_input" type="text" style="width: 80px;"></td>' +
'<td><input type="checkbox" name="add_bank_approved" value="0"></td>' +
'<td><button type="submit" class="btn btn-primary">Add</button></td>'
);
window.can_add_bank_row = false;
} else {
alert('You\'ve got one empty row to add a bank account already.\nPlease, fill and submit it before adding a new one. :)');
}
}
Когда я проверить исходный код страницы, я могу увидеть форму и все ее элементы в коде, но он просто не отображается визуально. // jsfiddle for this ^
Если я пытаюсь вместо этого:
$('<tr>' +
'<form method="POST" onsubmit=\"return confirm(\'' + warning_msg + '\');\">' +
'<td></td>' +
'<td><select id="bank_type_dropdown">' +
'<option value="international">International</option>' +
'<option value="sepa">SEPA</option>' +
'<option value="interac">Interac</option>' +
'<option value="paypal">PayPal</option>' +
'</select></td>' +
'<td><input name="add_bank_label_input" type="text"></td>' +
'<td><input name="add_bank_currency_input" type="text" style="width: 50px;"></td>' +
'<td><input name="add_bank_min_transfer_input" type="text" style="width: 80px;"></td>' +
'<td><input type="checkbox" name="add_bank_default" value="0"></td>' +
'<td><input type="checkbox" name="add_bank_approved" value="0"></td>' +
'<td><button type="submit" class="btn btn-primary">Add</button></td>' +
'</form>' +
'</tr>').insertBefore('#bank_accs_tbl > tbody > tr:first');
то форма тег автоматически закрыто, а поля ввода и кнопка отправить остаются вне формы ...
Aaaand, я также попытался это одно:
$('<form id="addNewBankAccountForm" method="POST" onsubmit=\"return confirm(\'' + warning_msg + '\');\">'
).insertBefore('#bank_accs_tbl > tbody > tr:first');
$('#addNewBankAccountForm').html(
'<tr>' +
'<td></td>' +
'<td><select id="bank_type_dropdown">' +
'<option value="international">International</option>' +
'<option value="sepa">SEPA</option>' +
'<option value="interac">Interac</option>' +
'<option value="paypal">PayPal</option>' +
'</select></td>' +
'<td><input name="add_bank_label_input" type="text"></td>' +
'<td><input name="add_bank_currency_input" type="text" style="width: 50px;"></td>' +
'<td><input name="add_bank_min_transfer_input" type="text" style="width: 80px;"></td>' +
'<td><input type="checkbox" name="add_bank_approved" value="0"></td>' +
'<td><button type="submit" class="btn btn-primary">Add</button></td>' +
'</tr>'
);
Теперь строка, вместе с входами, визуализируется, но все в первой ячейке ... Я не могу справиться с интерфейсом, я сторонник. Пожалуйста, помогите: D
Ваш HTML является недействительным, так как только '' th' и td' элементы могут быть прямым потомком 'tr'. См. Http://www.w3.org/TR/html-markup/spec.html#tr Таким образом, ваш браузер изменяет HTML, который вы поставляете – Satpal
, можете ли вы предоставить скрипку своего кода? – amoeba
Вы не можете поместить элемент