У меня есть раскрывающийся список, который, когда пользователь выбирает элемент из него, отображает частичное с соответствующими данными. Но если пользователь изменяет выбор ddl, то ранее отображаемый контент должен быть заменен текущим контентом.Поведение Firebug при выборе элемента из выпадающего списка
Ниже приведен код
Script
<script>
var prev;
$(document).on('focus', '.class03', function() {
prev = $(this).val();
}).on('change', '.class03', function() {
if (prev != "") {
$('.cmpCls').last().remove();
alert(prev);
$.ajax({
url: '@Url.Action("ComponentDts", "InquiryOrder")', // dont hard code your url's
type: "GET",
data: { DesignCdId: $(this).val() }, // pass the selected value
success: function (data) {
$('#cmpDts').append(data);
}
});
}
else {
$.ajax({
url: '@Url.Action("ComponentDts", "InquiryOrder")', // dont hard code your url's
type: "GET",
data: { DesignCdId: $(this).val() }, // pass the selected value
success: function (data) {
$('#cmpDts').append(data);
}
});
}
});
</script>
Div добавлять ОКАЗАННЫХ Частичный вид
<div id="cmpDts">
</div>
Вот что смущает меня, когда я использую поджигатель, скрипт работает отлично заменяя ранее отображаемый контент в div 'cmpDts', когда пользователь меняет выбор выпадающего списка.
Но когда я запускаю приложение без firebug, и когда пользователь меняет выбор ddl, вместо замены предыдущего содержимого в div он продолжает добавлять в div без удаления предыдущего содержимого.
Я думаю, что без firebug, каждый раз, когда дело доходит до else
, часть независимо от того, prev
имеет значение или нет. Я мог бы признать, что because alert
не уволен без firebug здесь. Я смущен этим поведением. Вся помощь была оценена. Благодаря!
Edit: Как я получил, что работал (я знаю, что это может быть не правильный подход, но с ограниченным временем я должен был придерживаться этого)
<script>
var prev;
$(document).on('focus', '.class03', function() {
prev = $(this).val();
}).on('change', '.class03', function() {
if (prev != "") {
//$('.cmpCls').last().remove();
alert("If");
$.ajax({
url: '@Url.Action("ComponentDts", "InquiryOrder")', // dont hard code your url's
type: "GET",
data: { DesignCdId: $(this).val() }, // pass the selected value
success: function (data) {
$('.cmpCls').last().replaceWith(data);
}
});
}
else {
alert("Else");
$.ajax({
url: '@Url.Action("ComponentDts", "InquiryOrder")', // dont hard code your url's
type: "GET",
data: { DesignCdId: $(this).val() }, // pass the selected value
success: function (data) {
$(".class03 option[value='']").remove() ;
$('#cmpDts').append(data);
}
});
}
});
</script>
Что произойдет, если нажать Ctrl + F5, чтобы перезагрузить страницу, а затем попробовать снова? Возможно, ваш браузер использует кешированную версию без firebug. –
@L Ja, Спасибо, что ответили. Да, я сделал это. Но все равно продолжает добавлять в div. Как вы думаете, правильно ли я написал сценарий? – Isuru
О, вы хотите, чтобы он заменил контент? В этом случае используйте '.html()' вместо '.append()'. .'append() 'вставляет новое значение за текущее значение. '.html()' заменяет его. –