我正在使用以下函数来获取更改的值。我还希望获得在执行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>
答案 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>