【问题标题】:Jquery on click is not getting updated value of textarea点击时的 Jquery 没有获得 textarea 的更新值
【发布时间】:2017-04-04 08:47:57
【问题描述】:

好的,所以我正在尝试获取从 jquery 动态添加的 textarea 的值。但它似乎总是得到它的默认值。

代码如下:

jQuery:

$(document).on('click', '.savechanges',function(e){
    e.preventDefault()
    var rowid = $(this).attr('data-id');
    var text = $(".textbox-" + rowid).val();
    var datum = $("#date").val();

    $.ajax({
        type : 'post',
        url : 'php/savechanges.php',    //Here you will fetch records 
        data :  'rowid='+ rowid + "&date=" + datum + "&text=" + text,     //Pass $id
        success : function(data){
          alert('Dina ändringar har blivit sparade!');
        }
    });
});

HTML:

<div class="form-group">
  <label for="text">Ändra din text för denna dag</label>
  <textarea class="form-control textbox-<?php echo $singleRow['id'];?>" name="textruta" id="text">.
    <?php echo $singleRow['textruta'];?>
  </textarea>
</div>
<button type="button" class="btn btn-block btn-success savechanges" data-dismiss="modal" data-id="<?php echo $singleRow['id'];?>">
  Spara ändringar
</button>

所以这里的问题是 $(".textbox-" + rowid).val() 总是得到 jQuery 添加的值,而不是更新的版本。

任何帮助将不胜感激。

【问题讨论】:

  • 似乎工作正常 -> jsfiddle.net/adeneo/nv9pjuuL
  • 问题是,textarea 是在另一个文件中创建的,并在引导模式中使用 jquery 放在页面上。当我尝试在主页上发布结果时,jquery 似乎无法访问 textarea 中的更新内容。
  • 也尝试了相同的日期输入,但是当我更改它时也没有更新。
  • 尝试使用 .html() 或 .text() 代替 .val() 来检索
  • 两者都没有可悲的工作。 :(

标签: javascript php jquery html


【解决方案1】:

我在我的服务器上创建文件 index.php 并创建此代码

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<?php
 $singleRow['id'] = 1;
 $singleRow['textruta'] = "test";
?>
<div class="form-group">
  <label for="text">Andra din text for denna dag</label>
  <textarea class="form-control textbox-<?php echo $singleRow['id'];?>" name="textruta" id="text"><?php echo $singleRow['textruta'];?></textarea>
</div>
<input type="text" id="date" value="05/04/2017"/>
<button type="button" class="btn btn-block btn-success savechanges" data-dismiss="modal" data-id="<?php echo $singleRow['id'];?>">
  Spara andringar
</button>
<script>

$(".savechanges").on('click',function(e){
    e.preventDefault()
    var rowid = $(this).data('id');
    var text = $(".textbox-" + rowid).val();
    var datum = $("#date").val();
console.log("start");
    $.ajax({
        type : 'post',
        url : '/seo-service/ajax/savechanges.php',    //Here you will fetch records 
        data :  'rowid='+ rowid + "&date=" + datum + "&text=" + text,     //Pass $id
        success : function(data){
            console.log(data);
          alert('Dina andringar har blivit sparade!');
        }
    });
});

</script>

在此之后我创建新文件“savechanges.php”

    <?php

var_dump($_POST);

?>

一切正常。希望这个例子对你有帮助

【讨论】:

  • 我认为 url 有问题,也许试试 /php/savechanges.php(“php”前的斜线)
  • 问题不在接收端。这是发送端的问题。
  • 怎么样?你的计划是什么?
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 2016-12-29
  • 2019-11-16
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多