Я извлекаю значения из параметров элемента «выбрать», используя метод JQuery blur(), но по какой-то причине он всегда извлекает значение selectedIndex = 0, а не выбранный мной selectedIndex.
Вот --> JSFiddle ‹-- По какой-то причине первая строка работает нормально (длина), но ни одна из другие ряды работают.
Введите число в любом текстовом поле (КРОМЕ ПЕРВОГО «ДЛИНА»), а затем выберите элемент в соседнем поле ВЫБОР, затем щелкните вне поля ВЫБОР.
Вы увидите, что код всегда выбирает значение option=0 в каждом элементе SELECT. И он также не может распознать мое свойство 'data-hid' как число (см. HTML в элементе текстового поля)
Кто-нибудь может помочь? Я застрял на этом уже день.
** Кроме того, по какой-то причине это работает только в JQuery 1.7.2, а НЕ в выпусках 1.9 (ему не нравится код «option: selected», кто-нибудь знает, как этот фрагмент может соответствовать последним выпускам?
$('select').blur(function() {
//Get the value of the option chosen
var unit = $(this + 'option:selected').val();
//If the selectedIndex is 0 then focus on the select and make the user chose a unit.
if ($(this).prop('selectedIndex') == 0) {
$(this).focus();
return;
} else {
//Remove the 'd' in front of the 'select' element ID and you will have the ID of the textbox
var txt = "#" + $(this).attr("id").substr(1);
//Get the numerical value of the textbox
var mval = parseFloat($(txt).val());
if ($(txt).attr('data-hid') == "OFF") {
var hid = mval / unit;
$(txt).attr('data-hid', hid);
alert("hid = " + hid + "\nmval = " + mval + "\nunit = " + unit);
}
else
{
var hid = $(txt).attr('data-hid');
var newtxt = hid * unit;
$(txt).val(newtxt);
}
}
main();
});