1

StackOverflow 上有一些参考资料,例如:
- textarea 不返回值
- 以及其他 ..

但即使有了这些,我仍然无法让它工作。

我只是不尊重地把我的代码放在下面。对不起。

预期行为:
控制台应在输入内容时返回文本区域的值。

实际行为:
控制台返回"(一个空字符串)"
当我只是写msg = "This IS going through"; 而不是我试图获得 .val() 的行时......它工作得很好。函数传递那个“msg”变量就好了。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>why oh why</title>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(function(){

                msg = $(".mymsg").val();
                $('.hitme').on("click", {param1: msg}, sendNotif);

                function sendNotif(event) {
                    msg = event.data.param1;
                    console.log(msg);
                }

            });
        </script>
     </head>
<body>


<textarea class="mymsg" cols="5" rows="10"></textarea>
<span class="hitme">click here</span>


</body>
</html>
4

3 回答 3

3

您正在获取值 onload,因此var msg将是空的,您需要在单击事件时获取它,而不是在加载页面时

于 2013-01-31T18:20:12.533 回答
2

问题是msg仅在$(function() { … })页面加载处理程序触发时设置一次。该行不再执行。将您的代码更改为:

$('.hitme').on("click", {param1: $(".mymsg").val()}, sendNotif);
于 2013-01-31T18:19:41.033 回答
1

您需要在触发事件时提取 mymsg 的值。我会这样做:

$(".hitme").click(function() {
  console.log( $(".mymsg").val() );
});
于 2013-01-31T18:18:31.287 回答