【发布时间】:2020-09-14 18:41:01
【问题描述】:
我已将我最初的问题简化为一个更简单的示例,可以在 JS Fiddle 上复制。
我有一个模态对话框 (#popup),其中包含一些用 V 类装饰的 <input>s:
<input class="V" type="number" />
<input class="V" type="text" />
我有一个按钮,可以将每个 <input> 的 value 属性设置为某个值并启动此模式:
<button onclick="edit();">Edit</button>
<script>
edit = () => {
const inputs = $(".V");
inputs[0].setAttribute("value", "999");
inputs[1].setAttribute("value", "998");
$("#popup").modal("show");
}
</script>
在模态中,如果我更改 <input> 元素的值并关闭它,下次我再次启动它时,<input> 会显示更改后的值,而不是显式设置的值,999 或 998。
为什么会这样?
如果模态框包含单个 <input> 并且我使用 jQuery 的 .val() 方法来设置值,则问题不存在。
【问题讨论】:
-
代码在哪里?你有多少“Project_1”的对象? (是的,这有很大的不同)
-
模态中的
<input>元素不止一个。我已经减少了问题并在 JS Fiddle 中重现了它。 -
@OldGeezer,尝试设置像这样的值
inputs[0].value = '999';和这里的分叉小提琴,jsfiddle.net/2xqtganu/1 -
谢谢,这行得通。是什么原因?
setAttribute第一次工作,但<input> 没有改变。 -
value -- "定义一个默认值,该值将在页面加载时显示在元素中。"所以它只工作一次:在页面加载时。
标签: twitter-bootstrap dom bootstrap-4 bootstrap-modal dhtml