jQuery来自select onChange的值

时间:2018-04-24 02:41:36

标签: jquery select

我正在使用以下函数来获取更改的值。我还希望获得在执行onChange动作之前设置的值。

是否可以在以下功能中执行此操作?

function getval(sel)
{
    alert(sel.value);
}
<select onchange="getval(this);">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

2 个答案:

答案 0 :(得分:1)

focus事件必须在change事件之前触发,因此您可以执行此操作:

JS

var oldValue;
function getValOnFocus(sel)
{
    oldValue = sel.value;
}
function getval(sel)
{
    // can access previously set value here
    alert(`Old Value: ${oldValue}; new value: ${sel.value}`);
}

HTML

<select onchange="getval(this);" onfocus="getValOnFocus(this);">

演示:

var oldValue;
function getValOnFocus(sel)
{
    oldValue = sel.value;
}
function getval(sel)
{
    // can access previously set value here
    alert(`Old Value: ${oldValue}; new value: ${sel.value}`);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select onchange="getval(this);" onfocus="getValOnFocus(this);">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

答案 1 :(得分:1)

另一种选择是使用数据属性,例如:

function getval(sel) {
  console.log('original value', sel.dataset.originalValue);
  sel.dataset.originalValue = sel.value;
  console.log('new value',sel.value);
}
   <select onchange="getval(this);" data-original-value="1">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select>