Что вы делаете:
$(".entry").last().after().append(
'<div class="entry"><label for="HandHeldProducts_' +
modelcount +
'__SerialNumber">Serial Number</label><input' +
($.MyFunction($("#BothProducts"))) ?
'disabled = "disabled"' :
'' + ' class="serial" id="HandHeldProducts_' +
modelcount +
'__SerialNumber" name="HandHeldProducts[' +
modelcount +
'].SerialNumber" placeholder="Serial Number" type="text" value="" /></div>'
)
В основном над остальной частью вашей конкатенации строк находится в блоке "else" троичного
Чтобы избежать этого, закройте ваш tenary в скобках.
Что вы хотите сделать:
$(".entry").last().after().append(
'<div class="entry"><label for="HandHeldProducts_' +
modelcount +
'__SerialNumber">Serial Number</label><input' +
(($.MyFunction($("#BothProducts"))) ?
'disabled = "disabled"' :
'') +
' class="serial" id="HandHeldProducts_' +
modelcount +
'__SerialNumber" name="HandHeldProducts[' +
modelcount +
'].SerialNumber" placeholder="Serial Number" type="text" value="" /></div>'
)
Реальная проблема
Конкатенация строк, подобная этой, - *****.Используйте DOM или используйте шаблоны.
Ниже DOM: ( не проверено )
$(".entry").last().after().append(
$("<div></div>", {
"class": "entry"
}).append(
$("<label></label>", {
"label": "HandHeldProducts_" + modelcount + "__SerialNumber"
"text": "Serial Number"
})
).append(
$("<input/>", {
"class": "serial",
"id": "HandHeldProducts_" + modelcount + "__SerialNumber"
"name": "HandHenldProducts[" + modelcount + "].SerialNumber",
"placeholder": "Serial Number",
"type": "text",
"value": ""
})
)
);
if ($.MyFunction($("#BothProducts")) {
$("#HandHeldProducts_" + modelcount + "__SerialNumber").attr("disabled", "disabled");
}