gpt4 book ai didi

javascript - 表单标签过早关闭

转载 作者:行者123 更新时间:2023-11-29 16:56:52 26 4
gpt4 key购买 nike

据我所知,这意味着 html 代码无效,通常是因为嵌套不正确。

此表单是在按下按钮时通过从使用 jQuery.ajax() 调用的 php 函数回显生成的:

<?php

echo '
<div class="row survey-container text-center">
<form id="surveyForm" action="processSurvey.php" method="post">

<h3>Alimentos</h3>
<h4>Sabor</h4>
<div class="form-group">';
for ($i = 0; $i <= 10; $i++) { // Imprime lista de sabor
echo '
<label class="radio-inline">
<input type="radio" name="sabor" id="saborRadio'. $i .'" value="'. $i .'">'. $i.'
</label>
';
}
echo '
</div>
<div class="form-group">
<button class="btn btn-default surveyForm-btn" type="submit">Enviar</button>
</div>

</form>
</div>
';
?>

所有代码都按预期运行,但只有一行:

[...] 
<form id="surveyForm" action="processSurvey.php" method="post"></form>
[...]

表单一打开就自行关闭。我违反了一些规则吗?好像找不到问题。我不认为问题出在 js 上,但我会包含它

        $('body').on('submit', '#surveyForm', function(e){
console.log("Clicked on #surveyForm ");
var data = $(this).serialize();
console.log( data );
$.ajax({
method: "POST",
url: "processSurvey.php",
data: data,
success: function(result){
console.log("Ajax call to processSurvey success");
$("#surveyForm").clearForm();
console.log(result);
console.log( data );

}
});
return false;
});

控制台日志表明一切正常,但没有数据被发送(空数组),考虑到表单过早地自行关闭,这是有道理的。

编辑:我想我知道问题出在哪里,表格是在表格内创建的,这是无效的 html(对吗?)我会在修复该问题时发布更新。我应该标记为已回答吗?

最佳答案

您正在序列化按钮,而不是表单。

var data = $(this).closest("form").serialize();

关于javascript - 表单标签过早关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728176/

26 4 0