gpt4 book ai didi

javascript - Jquery/Ajax .serialize() 无法完全工作

转载 作者:行者123 更新时间:2023-12-03 06:55:47 24 4
gpt4 key购买 nike

我试图将数据从表单发送到另一个页面进行处理,但问题是我的 jquery 序列化为表单并将信息发送到页面仅发送 2 个表单字段之一。该表单是从 php 生成的,如下所示:

 echo "<td>{$_SESSION['givenname']}</td><td><form id='commentAdd' method='POST' action='javascript:void(0);'><textarea name='Description' id='description' rows='2' cols='50'></textarea></td><td><input type='text' id='time' name='time'/></td><td><input type='submit' class='btn btn-info' id='addComment'></form></td>";

分解后看起来像:

<td>{$_SESSION['givenname']}</td>
<td><form id='commentAdd' method='POST' action='javascript:void(0);'><textarea name='Description' id='description' rows='2' cols='50'></textarea></td>
<td><input type='text' id='time' name='time'/></td>
<td><input type='submit' class='btn btn-info' id='addComment'></form></td>";

我认为问题在于 form 的放置td内限制哪些字段被序列化。如果我移动 <form>标记到时间输入之前,我得到了该数据,但是当我将其移动到第一个 td 时我什么也没得到,当我把它放在我有的地方时,我只得到描述。我试图弄清楚如何使用 jquery 来准确地告诉它哪些字段作为数据发送,但我只收到错误,我尝试了六种方法。我相信这可能是一个解决方案,但我不太确定实现情况。为了解释我的意思,请查看下面我当前的序列化代码:

$("#addComment").click(function(){
$.ajax({type: 'post', data: { myData: $('#commentAdd').serialize() }, url: "addComment.php", success: function(info){
$(".sort-Table-Return").html(
info
);
}});
});

我试图做的是更改data:里面的信息类似于 ('#time').val();('#description').val();但我不断在控制台中收到有关意外字符串的错误。我也尝试过使用这个方法:

var time = $('#time').val();
var desc = $('#description').val();
$("#addComment").click(function(){
$.ajax({type: 'post', data: {'desc=' +desc, 'time=' +time } , url: "addComment.php", success: function(info){
$(".sort-Table-Return").html(
info
);
}});
});

这给了我一个 unexpected token +我在上面执行了此操作,但仅使用一个字段,因此我不需要 {}围绕它。任何想法如何解决这一问题?我已经尝试了几个小时,我认为已经很接近了,但我觉得多几双眼睛也许能够为我指明正确的方向。

谢谢!

最佳答案

我使用serializeArray()方法。由于某种原因,它不适用于禁用的输入,这就是为什么我之前确保禁用禁用的属性。

希望能有所帮助。

示例如下。

		var formName = "commentAdd";
var myForm = $('#'+ formName);
var disabled = myForm.find(':input:disabled').removeAttr('disabled');
var formVals = myForm.serializeArray();

$("#result").html(JSON.stringify(formVals));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<td>{$_SESSION['givenname']}</td>
<td><form id='commentAdd' method='POST' action='javascript:void(0);'>
<textarea name='Description' id='description' rows='2' cols='50'> aaaaaaaaa</textarea></td>
<td><input type='text' id='time' name='time' value="12:00"/></td>
<td><input type='submit' class='btn btn-info' id='addComment'></form></td>";

<div id="result"></div>

关于javascript - Jquery/Ajax .serialize() 无法完全工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com