Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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
Javascript 未捕获引用错误:未定义变量_Javascript_Jquery_Html - Fatal编程技术网

Javascript 未捕获引用错误:未定义变量

Javascript 未捕获引用错误:未定义变量,javascript,jquery,html,Javascript,Jquery,Html,我有两个文本区域,从空值开始。 然后,当我用id“postrudo”填充第一个textarea时,我希望下一个textarea(id为“posthecho”)获得与第一个相同的值,并显示相同的值。类似于双向绑定,如AngularJS,但仅限于JavaScript和jQuery 这是JS: <script type="text/javascript"> $(document).ready(function(){ $("#submit").click(function(){

我有两个文本区域,从空值开始。 然后,当我用id“postrudo”填充第一个textarea时,我希望下一个textarea(id为“posthecho”)获得与第一个相同的值,并显示相同的值。类似于双向绑定,如AngularJS,但仅限于JavaScript和jQuery

这是JS:

<script type="text/javascript">
  $(document).ready(function(){
    $("#submit").click(function(){
      $("#postcrudo").val(function(){
        algo = this;
      });
      postHecho = postCrudo;
      console.log("OK!");
    });
  });
</script>

$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
$(“#postcrudo”).val(函数(){
algo=这个;
});
postHecho=postCrudo;
console.log(“OK!”);
});
});
这是HTML:

<body>        
  <div style="width:700px;float:left;">
    <p>Post crudo:</p>
    <p><textarea cols="100" maxlength="99999" name="postCrudo" id="postcrudo" rows="60"></textarea></p>
  </div>
  <div style="width:700px;float:left;">
    <p>Post pasado:</p>
    <p><textarea cols="100" maxlength="99999" name="postHecho" id="posthecho" rows="60"></textarea></p>
  </div>
  <div style="clear:both;"></div>
  <p><input type="submit" value="submit" id="submit" /></p>        
</body>

克鲁多之后:

后帕萨多:

Chrome控制台中的错误是:

未捕获引用错误:未定义postCrudo


您的元素id
postrudo
都是小写的<代码>postCrudo确实没有定义

这一行
postHecho=postrudo毫无意义,我认为您正在尝试这样做:

$('#posthecho').val($('#postcrudo').val())

没有
postrudo
的声明,因此它是未定义的。还有,为什么您希望自己尝试使用AngularJS之类的工具来处理数据绑定呢。你基本上是在无缘无故地做更多的工作。此外,还必须手动处理双向数据绑定的所有方面。对我来说,有更聪明的方法可以做到这一点

JavaScript语法区分大小写

`postHecho = postCrudo;`
应该是:

`postHecho = postcrudo;`

这是你想要的吗

只需获取第一个textarea的值,然后将第二个textarea的值更改为:

$(document).ready(function(){
    $("#submit").click(function(){
        var postCrudoVal = $("#postcrudo").val();
        $("#posthecho").val(postCrudoVal);
        console.log("OK!");
    });
});
无论是
postHecho
还是
postrudo
都没有声明(由您**),即使声明了,将其中一个指定给另一个也不会实现您想要的效果。您必须使用jQuery选择器(在本例中)将第一个textarea的
分配给第二个textarea的
,因为它们是引用DOM元素(textarea)的选择器


**具有id的元素默认设置为全局“变量”,但不应使用它们;相反,建议您使用DOM API查找元素或使用jQuery(在后台使用DOM API)。

我没有看到变量
postrudo
元素ID和jQuery选择器匹配的任何声明-这不是问题。jQuery部分没有问题。我和错误指的是
postHecho=postrudo
你期望它做什么?我期望它失败,但不是因为你暗示的原因。您的第一行引用了不相关的元素ID。请参见上文。
postrudo
也没有定义。谢谢大家的帮助。最后,我决定使用AngularJS来处理这个问题。双向数据绑定是我所需要的。