我正在使用 JQuery blur() 方法从“select”元素的选项中提取值,但由于某种原因,它总是提取 selectedIndex = 0 的值,而不是我选择的 selectedIndex。
这是 --> JSFiddle <-- 出于某种原因,第一行工作正常(长度),但其他行都不起作用。
在任何文本框中键入一个数字(第一个“长度”除外),然后从相邻的 SELECT 框中选择一个项目,然后单击 SELECT
您将看到代码始终在每个 SELECT 元素中选择 option=0 的值。它也无法将我的“数据隐藏”属性识别为数字(请参阅文本框元素中的 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();
});