Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从输入JQuery或javascript获取修改后的文本_Javascript_Jquery_Text_Input - Fatal编程技术网

如何从输入JQuery或javascript获取修改后的文本

如何从输入JQuery或javascript获取修改后的文本,javascript,jquery,text,input,Javascript,Jquery,Text,Input,从输入中获取修改的文本时遇到问题。输入加载了我从数据库中获得的一些文本,使用一个选项,我应该去掉onlyread属性并更改值。这没关系,但当我在输入中写入其他内容后单击save按钮时,它会使用.val()获取旧值。我怎样才能买到新的 代码是这样的 var anInput = $("#anInput").val(); //gets old value var otherInput = $("#otherInput").val(); //gets old value $.aj

从输入中获取修改的文本时遇到问题。输入加载了我从数据库中获得的一些文本,使用一个选项,我应该去掉onlyread属性并更改值。这没关系,但当我在输入中写入其他内容后单击save按钮时,它会使用.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

编辑:根据我评论中的猜测,页面中有多个
#输入
,因此代码仅从第一个值检索值,而该值不是正在编辑的值。解决方案是在页面的HTML中没有任何重复的id值


我怀疑你的代码与你展示的不太一样。您可能正在执行以下操作:

var anInput = $("#anInput").val(); //gets old value
var otherInput = $("#otherInput").val(); //gets old value
仅使用一次,然后在表单字段已更改的情况下尝试使用输入和其他输入。您可以通过以下方式获取当前值:不缓存当前值,只在需要时检索当前值:

data: {anInput: anInput, otherInput: otherInput}
为此:

data: {anInput: $("#anInput").val(), otherInput: $("#otherInput").val()}

这样,您总是在Ajax调用之前检索最新和最大的值。

请确认mod.php返回的数据格式。AJAX块希望接收HTML格式的文本
数据类型:'HTML',
——但是您正在发送json,这就是您希望返回的内容吗

如果本说明未显示解决方案,请向我们展示您的
doSomething
函数-这就是处理返回数据的地方


可能您已经尝试过,但如果您这样做会发生什么:

var anInput = $("#anInput").val(); //gets old value
alert(anInput);
var otherInput = $("#otherInput").val(); //gets old value
alert(otherInput);

$.ajax({ //etc });

你能举个例子吗?也许是JSFIDLE。您能解释一下“使用选项我应该关闭
onlyread
attr并更改值”是什么意思吗?我们需要了解您如何设置新值,以便找出
.val()
无法正确拾取新值的原因。我显示了一些输入信息,单击允许我修改的按钮,在输入中键入一些新文本,然后单击“保存”供参考,StackOverflow的政策不是用解决方案编辑帖子。您应该使用绿色复选标记指示提供解决方案的答案。根据我们在评论中的讨论,我已经编辑了我的答案,以包含实际的解决方案。实际上,这就像我正在展示的一样。我试过了,但都一样。我只是在旧的文本上写,来改变输入中的文本text@nicomv95-然后,输入中的值实际上没有变化。向我们展示HTML和用于更改它们的代码。这里面可能有问题。我添加了html代码。我正在用键盘手动更改它,但这并不是在更新value@nicomv95-它在这里似乎工作得很好:所以很明显,您的HTML或JS中没有向我们显示其他一些内容。@nicomv95-您的页面中是否有多个
#输入
字段?如果是这样,jQuery可能会获取第一个的值。AJAX不是问题所在。问题是在它到达之前,在之前的两行上。我检查元素,输入和其他输入的变量有错误的信息。val()正在将html信息保存在变量中,但我希望输入中写入的信息显示旧信息。我认为错误的是,直接在输入中键入新文本不会改变值。我怎样才能得到输入中输入的内容?没有更好的方法了。如果您使用的是
var myVar=$('#elementID').val()然后您将获得该元素的当前内容。还有别的事情。