Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При изменении значения select'a оно меняется, затем сбрасывается. (https://javascript.ru/forum/jquery/36494-pri-izmenenii-znacheniya-select%27-ono-menyaetsya-zatem-sbrasyvaetsya.html)

upvasil 16.03.2013 23:47

При изменении значения select'a оно меняется, затем сбрасывается.
 
Всем привет!
Столкнулся с такой ситуацией, что при изменении значения val select'a , оно сначала меняется, потом возвращается в исходное состояние( можно заметить резкое колебание при щелчке на картинке '.editjob'). Вот такой код:

$('.editjob') .click(editfunct);

function editfunct(e) {
var jobdiv = $(this).parent();
var data = { 'id': jobdiv.attr('jobid'),
'divid': getUrlVars()['SECT'],
'name': $('.jobname',jobdiv).text(),
'price': $('.jobprice',jobdiv).text(),
'visible': true,
'subdivid': getSubdivById(jobdiv.attr('jobid'))};
$('input[name="jobname"]','.editwindow').val(data.name);
$('input[name="jobprice"]','.editwindow').val(data.price);
$('select[name="divid"]','.editwindow').val(data.divid);
$('select[name="divid"]').trigger('change');
$('select[name="subdivid"]','.editwindow').val(data.subdivid); // <= вот с эти селектом проблемы

$('.editwindow').animate({'top':'40%'},700,'swing' );
}
Используются функции:
1. Для получения GET-параметров:
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.in dexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
2. Для получения значения subdiv( подраздел, к которому относится элемент:
function getSubdivById(id){
var subdivid;
$.ajax({
url: 'getSubdividById.php',
type: 'POST',
async: false,
data: 'jobid='+id,
success: function(msg) {
subdivid=msg;
}
});
return subdivid;
}

Эти селекты - это связанные списки, при выборе элемента из первого - грузятся аяксом элементы во второй такой функцией:
function viewSelectSubdiv(){
var divid = $('select[name="divid"]').val();
if(divid){
$.ajax({
type:"POST",
url: "ViewSubdivSelect.php",
data: {divid: divid},
cache: false,
success: function(response){ $('span[name="SelectSubdiv"]').html(response); }
});
}
}

Причём, в коде меняются значения двух select'ов, проблемы только со вторым. И при отладке в firebug'e, как ни странно, всё проходит хорошо, без сброса select'a.
В чём может быть проблема?


Часовой пояс GMT +3, время: 11:56.