$(document).ready(function() {
var dynamicChargableForm = 1;
var dynamicDiscountForm = 1;
var selectedId = 1;
var newTextarea = null;
var chargableHeader = document.getElementById('chargable-header');
var disountHeader = document.getElementById('discount-header');
var execute = null;
$(document).on('keyup','.dynamic',function() {
var typeName = this.id.split('-')[0];
switch(typeName) {
case 'chargable':
execute = dynamicRow(this, 'chargable', dynamicChargableForm , chargableHeader);
execute ? dynamicChargableForm++ : execute = null;
break;
case 'discount' :
execute = dynamicRow(this, 'discount', dynamicDiscountForm, disountHeader);
execute ? dynamicDiscountForm++ : execute = null;
break;
}
});
});
function dynamicRow(element, type , relatedTracker , relatedHeader)
{
selectedId = element.id.split('-')[1];
if (selectedId == relatedTracker)
{
relatedTracker++;
newTextarea = document.createElement('TEXTAREA');
newTextarea.setAttribute('name', type + '-' + relatedTracker);
newTextarea.setAttribute('class' , 'form-control dynamic ' + type);
newTextarea.setAttribute('id' , type + '-' + relatedTracker);
relatedHeader.append(newTextarea);
return true;
}
return false;
}
Это моя первая попытка добавить динамически заполняемую текстовую область, когда пользователь вводит последнюю добавленную форму. Я хотел бы посоветовать и просмотреть мой код, поскольку я считаю, что этот код не очень эффективен. Я бы хотел получить лучшее понимание и точку зрения эксперта.Как улучшить код?
Спасибо
Если ваш код работает, этот вопрос лучше подходит в http://codereview.stackexchange.com/ – kosmos
О, я вижу .. Спасибо .. @kosmos –
Это легко злоупотребить ':'. На первый взгляд я не могу понять, «казнь»? dynamicChargableForm ++: execute = null' делает правильные вещи. Возможно, это только я (я узнал, как 4 из 5 языков, которые реализуют один и тот же оператор, и они не все ведут себя точно так же, как и во всех обстоятельствах). –