预先填写并提交隐藏的表格

时间:2013-05-24 19:00:58

标签: javascript jquery html

我有一个表单,这里是提交按钮的处理程序:

$( '#submit_btn' ).click( function( data ){ 
    theForm = document.getElementById( 'realForm' );
    theForm.meetingName.value = document.getElementById( 'meeting_name' ).value;
    theForm.meetingId.value = '';
    theForm.description.value = document.getElementById( 'mtg_description' ).value;
    theForm.startTime.value = startDate + ' ' + startTime;
    theForm.endTime.value = endDate + ' ' + endTime;
    theForm.loginName.value = participants;
    theForm.role.value = roles;
    theForm.docRights.value = docRights;
    theForm.submit();
});

这个处理程序基本上预处理一些数据并发送到隐藏的表单,这个:

<form id="realForm" style="visibility:hidden" action="/app/meeting/create" method="post">
    <input name="loginName" type="text">
    <input name="meetingName" type="text">
    <input name="meetingId" type="text">
    <input name="startTime" type="text">
    <input name="endTime" type="text">
    <input name="description" type="text">
    <input name="roles" type="text">
    <input name="docRights" type="text">
</form>

问题是请求没有达到隐藏表单中定义的端点。我在这里做错了什么?

我已更改为隐藏输入类型而不是表单。提交处理程序肯定会执行,并且使用FireBug,我看不到NET选项卡下的请求。

我正在使用这个虚拟数据来尝试触发请求,但它仍无效:

theForm.meetingName.value       = "MY MTG";
                        theForm.meetingId.value         = '';
                        theForm.description.value       = "DESC";
                        theForm.startTime.value         = "2013-05-25 00:00:00";
                        theForm.endTime.value           = "2013-05-25 02:00:00";
                        theForm.loginName.value         = "foo@frr.com";
                        theForm.role.value              = "M,M";
                        theForm.docRights.value         = "CRUT,CRUT";

4 个答案:

答案 0 :(得分:2)

2个提示:

  1. 用它来从输入中获取变量。

    $("#NAME_OF_YOUR_INPUT_ID").val(); 
    
  2. 使用隐藏输入,并使用ID识别每个输入。

    <input id="docRights" type="hidden">
    

答案 1 :(得分:1)

我试试这个:

document.forms.realForm.submit()

答案 2 :(得分:1)

您的input名称为roles而不是role

将您的JS行更改为:

theForm.roles.value = roles;

见JS小提琴:http://jsfiddle.net/jav6s/

答案 3 :(得分:1)

问题是我的第一个表单有一个type =“submit”的按钮...所以即使我不想要它也提交表单。

我必须将类型更改为“按钮”才能防止这种情况发生。

感谢所有快速回复。