由于我不知道的原因,我的表单未提交输入<textarea>
的文字。
ajax代码:
$.ajax({
type:'POST',
url:'****.php',
data:$('#blogForm').serialize(),
success: function(responseSubmit) { blah blah etc...
输入工作正常,并正确地发布到我的数据库。
表格是:
<form id="blogForm">
<input type="date" name="date" id="blogDate">
<input type="text" name="title" id="blogTitle">
<textarea name="blogContent" id="blogBody"></textarea>
<input type="submit" name="submit" id="blogSubmit">
</form>
当我在firebug中检查时,我得到的是:POST是:
date=09%2F25%2F1986&title=Title&blogContent=
如您所见,blogContent为空。这是为什么?
答案 0 :(得分:5)
我忽略了提到我在文本区域附加了一个WYSIWYG编辑器,名为nicEditor。显然有一个错误迫使jQuery不能序列化textarea。一旦nicEditor被删除,它工作正常。感谢您的帮助。
答案 1 :(得分:1)
变化:
data:$('#blogForm').serialize(),
要:
data:$('#blogForm').find('input, select, textarea, button').serialize(),
答案 2 :(得分:0)
添加return false onsubmit
<code>
<form id="blogForm" onsubmit="return(false);">
<input type="date" name="date" id="blogDate">
<input type="text" name="title" id="blogTitle">
<textarea name="blogContent" id="blogBody"></textarea>
<input type="submit" name="submit" id="blogSubmit">
</form>
</code>
点击按钮
调用ajax$("#blogSubmit").on('click',function(){
$.ajax({
type:'POST',
url:'****.php',
data:$('#blogForm').serialize(),
success: function(responseSubmit) { blah blah etc...
});
答案 3 :(得分:0)
您的textarea名称是blogContent,但ID是blogBody。 #选择器使用id,而不是名称。
答案 4 :(得分:0)
你不需要删除你的编辑器 - 他们通常使用JS在每次击键后更新隐藏的textarea,或者在表单提交时使用,这样如果编辑器得到正确的话就不会有所作为。
我认为这个问题正如Phillip建议的那样 - 您的ID和名称属性不同。所有其他人都很好。当它序列化时,它必须使用ID,并且可能在你的脚本中,你希望这些名称会出现(正常的表单提交会这样做)。
由于您是通过$ POST发送的,只需执行var_dump($ _ POST);在您的脚本中,然后将其记录到控制台或在JavaScript中提醒它 - 看看通过AJAX发送到您脚本的确切内容。
如果textarea不在任何名称下,那么你知道问题肯定是编辑器,如果是,请尝试手动调用nicEditor的方法来更新隐藏的textarea。
答案 5 :(得分:0)
如果您使用的是ajaxSubmit,那么来自任何文本编辑器的textarea的POST数据将无效。
所以你必须得到价值&amp;把它放到隐藏字段然后你可以得到这样的POST值:
<textarea id="safety" name="safety" style="width:600px;height:70px"></textarea>
<input type="hidden" name="safety_precautions" id="safety_precautions">
在ajaxsubmit之前
$('#safety_precautions').val(tinyMCE.get('safety').getContent());