2

フォームがあり、送信ボタンのハンドラーは次のとおりです。

$( '#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

4 に答える 4

2

2 つのヒント:

  1. 入力から変数をフェッチするためにこれを使用します。

    $("#NAME_OF_YOUR_INPUT_ID").val(); 
    
  2. 代わりに非表示の入力を使用し、それぞれを ID で識別します。

    <input id="docRights" type="hidden">
    
于 2013-05-24T19:06:06.517 に答える
1

問題は、最初のフォームに type = "submit" のボタンがあったことです...そのため、フォームを送信したくありませんでした。

それを防ぐために、タイプを「ボタン」に変更する必要がありました。

すべての迅速な対応に感謝します。

于 2013-05-24T19:36:57.010 に答える
1

あなたのinput名前は ではありrolesませんrole

JS の行を次のように変更します。

theForm.roles.value = roles;

JS Fiddle を参照してください: http://jsfiddle.net/jav6s/

于 2013-05-24T19:14:38.077 に答える
1

私はこれを試してみます:

document.forms.realForm.submit()
于 2013-05-24T19:05:39.680 に答える