保存下拉列表的值并重新分配它
Save value of a drop-down list and reassign it
我有一个包含选项 1 到 10 的下拉列表。当所选项为 10 时,下拉列表将替换为文本框内数字为 10 的文本框。
如果用户从下拉列表中选择 10,然后清除 10 并将框留空,我想返回并重新分配在下拉列表转换为文本框之前选择的值。
例如:如果用户在下拉列表中选择了 3,然后选择了 10,我想将 10 保留在文本框中。如果清除该值,并且文本框再次变成下拉列表,我想重新分配给 3。
下面是下拉标记:
<select id='qty'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10+</option>
这是jQuery:
$('#qty').live('change', function () {
if ((this.value) == 10) {
$(this).replaceWith($('<input/>', {
'type': 'text',
'value': +(this.value)
}));
}
});
这是演示。
var lastValue;
$('#qty').live('change', function () {
if ((this.value) == 10) {
$(this).replaceWith($('<input/>', {
'type': 'text',
'value': +(this.value)
}));
}
else{
lastValue = this.value;
}
});
然后使用lastValue重置选择框的值,当你必须显示它时。
编辑:修改了jsfiddle,你只需要再次创建列表http://jsfiddle.net/qje6uywg/5/
请记住在替换输入时在输入中添加 id,以便在更改文本输入的值时也会更改。但与杜帕反应非常相似。
$('#qty').live('change', function () {
if ((this.value) == 10) {
$(this).replaceWith($('<input />', {
'type': 'text',
'value': + (this.value),
'id': 'qty'
}));
} else if ( this.value === '' && $(this).prop('type') === 'text' ) {
console.log('Do whatever you want when value is empty');
}
});
相关文章:
- Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值
- 如果我不这样做会发生什么;t在javascript中的变量中分配新的Image
- 如果我为 JS 变量分配一个新值,它会破坏它的绑定吗?
- 在以下情况下,map 如何分配新值
- 如何将日期分配给新的日期对象
- 为函数中的现有数组(全局变量)分配新值不起作用.为什么
- 分配给新变量时,计数器值在循环中更改
- 当我将$scope分配给另一个变量并更改新变量上的监视值时,不会触发角度 $scope.$watch
- JS:如何为新创建的HTML元素分配ID
- 自动将事件处理程序分配给新元素
- 在javascript中实例化一个新类时,不将其分配给变量有什么害处
- 解构并分配给新变量,同时不起作用
- 当您将字符串文本传递给变量,然后将该字符串中的数据分配给新变量时,它叫什么
- 对jsproto和分配新属性感到困惑
- 在屏幕调整大小时为引导程序元素分配新类不起作用
- 将XML转换为JSON后,为对象分配新值
- JS中高效的字符串解析:如何创建不分配新字符串的子字符串
- 给对象分配新字段
- 在不分配新箭头助手的情况下更新箭头助手的困难
- 在 jQuery 中为对象数组中的对象分配新值