jquery ajax:不序列化当前textarea状态

时间:2017-03-07 04:55:47

标签: javascript php jquery html ajax

所以,我想用jquery创建一个ajax,它使用方法post在textarea中发送值。 textarea位于带有按钮的表单内。当单击按钮时,我想用textarea的值更改另一个元素的值。

问题是: 每次单击按钮时,serialize()函数都不会捕获当前的textarea值。相反,它捕获先前的textarea值。 所以,这是一个例子(步骤):

1 - >我将textarea值更改为" one",然后单击按钮 回应:ajax成功但没有任何改变。 (我希望其他元素值变成"一个")

2 - >我将textarea值更改为" 2",然后单击按钮 回复:ajax是成功但是我期望改变成" 2"的元素值,变成" one"代替。

3 - >我将textarea值更改为" three",然后单击按钮 回复:ajax是成功的,但是我期望改变成"三个"的元素值,变成"两个"代替。

等等。

这是HTML表单代码

<form action="/" id="replies">
   <div class="input-group">
     <textarea id="editor1" name="editor1"></textarea>
     <span class="input-group-btn">
        <button type="submit" id="btn-chat">Send</button>
     </span>
   </div>
</form>

以下是我想要更改值的元素

<ul class="chat" id="result" name="result"></ul>

这是jquery

$( document ).ready(function() {
  var request;
  $( "#replies" ).submit(function( event ) {
    event.preventDefault();

    if (request) {
        request.abort();
    }

    var $form = $(this);
    var $inputs = $form.find("input, select, button, textarea");
    var serializedData = $form.serialize();
    $inputs.prop("disabled", true);

    request = $.ajax({
        url: "sys/callback.php",
        type: "post",
        data: serializedData
    });

    request.done(function (response, textStatus, jqXHR){
        $( "#result" ).append( response );
        console.log("It wroks!");
    });

    request.fail(function (jqXHR, textStatus, errorThrown){
        console.log("Error boss!");
        console.error(
            "The following error occurred: "+
            textStatus, errorThrown
        );
    });

    request.always(function () {
        $inputs.prop("disabled", false);
    });
  });
});

这是sys / callback.php代码

<?php
$toreturn = "";
if (isset($_POST['editor1'])) {
    $toreturn .= "<li>".$_POST['editor1']".</li>";
    echo $toreturn;
} else {
    echo "Retrieve Failed!";
}
?>

问题:如何让它像我给出的例子中所期望的那样工作?

这就是全部,谢谢你的帮助:) 我真的很感激。

0 个答案:

没有答案