我在从输入获取修改后的文本时遇到问题。输入加载了我从数据库获取的一些文本,并且通过一个选项,我应该关闭 onlyread 属性并更改值。没关系,但是当我在输入中写入其他内容后单击“保存”按钮时,它会使用 .val() 获取旧值。我怎样才能得到新的?
代码是这样的。
var anInput = $("#anInput").val(); //gets old value
var otherInput = $("#otherInput").val(); //gets old value
$.ajax({
type: "POST",
dataType: "html",
success: doSomething,
timeout: 4000,
error: someProblems,
url: "modules/mod.php",
data: {anInput: anInput, otherInput: otherInput}
});
我添加 AJAX 代码只是为了提及我需要这些值来执行某些操作。 AJAX 正在运行。
我知道这可以通过表单来完成,但这会重新加载页面,但我不希望这样。
抱歉我的英语生疏,谢谢:)
编辑:也许我在说“更改值”时说得不正确,我正在做的是选择文本并编写其他内容。
我在输入中显示一些信息,单击允许我修改的按钮,在输入中键入一些新文本,然后单击“保存”
HTML是由另一个AJAX生成的
<div class="infoVideo">
<input id="anInput" value="someTextFromDataBase">
<input id="otherInput" value="someTextFromDataBase">
<input type="button" id="btnMod">
<input type="button" id="btnSave">
</div>
如果我在输入中删除并输入其他内容,.val() 就会变得过时 someTextFromDataBase
最佳答案
编辑:根据我评论中的猜测,页面中有多个 #anInput
,因此代码仅从第一个不是正在编辑的值中检索值。解决方案是页面的 HTML 中不要有任何重复的 id 值。
我怀疑您的代码并不像您所展示的那样。您可能正在执行以下操作:
var anInput = $("#anInput").val(); //gets old value
var otherInput = $("#otherInput").val(); //gets old value
仅一次,然后在表单字段已更改时尝试使用 anInput
和 otherInput
。您可以通过不缓存这些值来获取当前值,只需在需要时通过更改以下值来检索当前值:
data: {anInput: anInput, otherInput: otherInput}
对此:
data: {anInput: $("#anInput").val(), otherInput: $("#otherInput").val()}
这样,您始终可以在 Ajax 调用之前检索最新和最大的值。
关于javascript - 如何从输入 JQuery 或 javascript 获取修改后的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021576/