1

这是我的 HTML 输出代码:

<tr class="uedit103" style="display: none;"><form  id="editform103" name="editform103">
    <td class="base" id="uedit103"><input type="text" class="editua" name="lname" id="lname" value="inte"></td>
    <td class="base" id="uedit103"><input type="text" value="info" class="editua" name="fname" id="fname" ></td>
    <td class="base" id="uedit103"><input type="text" value="email@email.com" class="edituaxl" name="emailadres" id="emailadres" ></td>
    <td class="yellow       
    "><select name="ma_accesslevel"><option value="0" >Basic</option><option value="1"  SELECTED >Intermediate</option><option value="2" >Superuser</option></select></td>
    <td class="yellow

    "><select name="m_accesslevel"><option value="0" >Basic</option><option value="1"  SELECTED >Intermediate</option><option value="2" >Superuser</option></select></td>
    <td class="yellow
    "><select name="hcc_accesslevel"><option value="0" >Basic</option><option value="1"  SELECTED >Intermediate</option><option value="2" >Superuser</option></select></td>
    <td class="base" id="uedit103"><input type="hidden" class="editua" name="uid" id="uid" value="103"></td>
    <td class="base" id="uedit103"><input type="button" id="editsubmit103" class="editbutton" Value="Save"><input type="button" id="editcancel103" class="editbutton" Value="Cancel"></td>
    </form></tr> 

jQuery 部分是这样的(为调试添加了警报):

$('#editsubmit$ses->user_id').click(function(){
    $.post('ajax/aj_edituser.php', $("form#editform$ses->user_id").serialize(), function(result) {
        alert($("form#editform$ses->user_id").serialize());
        $('#success$ses->user_id').delay(200).fadeToggle('slow').delay(2000).fadeToggle('slow');    
        $('div.mainadmin').html(result);            
    });
}); 

适用于所有浏览器,FF 除外,它在第二次提交表单时失败(表单在打开的页面中重新加载)。在验证 HTML 或查看 FF 中的源代码时,表单标签

<form  id="editform103" name="editform103">

显示为红色并收到消息“表格中显示的开始标记表单”。结束表单标记也被置为红色,并收到消息“Stray end tag form”。通过http://validator.w3.org/验证代码也会给我这些错误 +“在此上下文中不允许元素形式作为元素 tr 的子元素。(抑制来自该子树的进一步错误。)”在编辑表单上。所以我也尝试将表格放在标签周围,但没有帮助。

我再也看不到这个了,谁能帮忙?

4

2 回答 2

3

将表单标签放在 TR 标签或 TABLE 标签内是无效的 HTML,您需要将其放在 TD 内或整个 TABLE 周围

于 2012-09-06T08:20:56.203 回答
1

改变这个:

$('#editsubmit$ses->user_id').on('click', function(){ ... }

如果您要使用 Javascript 创建 HTML 元素,您应该使用它.on()来绑定事件。

http://api.jquery.com/on/

希望它有所帮助。

于 2012-09-06T08:20:44.957 回答