我有一个简单的 jquery 调用,是通过单击“编辑按钮”引起的,该调用打开带有输入(#folder-typed)的对话框,默认文本值为 $keepTitle。它工作正常,但是当我在输入中键入新值,然后关闭对话框并重新打开它时,该代码的第二行就像被忽略一样。文本输入的值不会改变,默认情况下它会获取我之前输入的值。
$keepTitle = $('.nav-folder-text[pass="' + $to_edit_id + '"]').text();
$('#folder-typed').attr('value', $keepTitle);
new_f_dialog.dialog("open");
E:附加 html
<div class="name-container">
<label for="name">Enter name:</label>
<input class="text-input" id="folder-typed" type="text" name="title" class="text ui-widget-content ui-corner-all">
</div>
正如我所说,当在多个位置单击“编辑”时,它会正确地将默认输入值更改为传递的标题,直到我用键盘更改文本输入值 - 然后它仍然保留最后输入的值。
最佳答案
不仅仅是第二行代码被忽略,一旦 DOM 准备就绪,它就会在浏览器中加载所有包含和引用的 javascript 和 css,以创建所需的内容/功能。
您所看到的是该 jquery 的预期行为。每次特定输入框在页面上可见时,更改输入框的值都会产生不同的值。
将该输入框放在编辑弹出窗口之外并更改其值。在重新加载页面或在浏览器控制台中运行 JavaScript 之前,您将无法在该文本框中取回 $keepTitle's
值。
如果您不想改变输入框的值,可以通过 $("#textBoxId").attr("disabled", "disabled"); 禁用文本框
我希望它能解释您在页面上出现的行为。
关于javascript - 键入后无法在输入中动态设置文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49824633/