所以,我想用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!";
}
?>
问题:如何让它像我给出的例子中所期望的那样工作?
这就是全部,谢谢你的帮助:) 我真的很感激。