0

このフォームが送信されないのはなぜですか?

<div data-dojo-type="dijit/form/Form" id="myForm" data-dojo-id="myForm"
encType="multipart/form-data" action="Cart.php" method="post">
<input type="text" name="searchName" 
data-dojo-type="dijit/form/TextBox"
data-dojo-props="trim:true, propercase:true" id="searchName" />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="sl" id="radioOne"    value="full"/> <label for="radioOne">Full</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="sl" id="radioTwo" value="short"/> <label for="radioTwo">Short</label>
Data Select
<select name="select1" data-dojo-type="dijit/form/Select">
<option  value="2">Data1</option>
<option  value="1">Data2</option>
</select>
<button data-dojo-type="dijit/form/Button" type="submit" name="submitButton"     value="Submit">Submit</button>
</div>

いくつかのJavaScriptも:

    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" data-dojo-config="parseOnLoad:true"></script>
    <script type="text/javascript">
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.TextBox");
dojo.require("dijit/layout/AccordionContainer"); 
dojo.require("dijit/layout/BorderContainer");
dojo.require("dijit/layout/ContentPane");
    </script>

ばかげた質問かもしれませんが、数時間見てもまだわかりません。前もって感謝します

4

1 に答える 1

0

あなたが提出しないで何を満たしているのかわかりません。コードを JS Bin ( http://jsbin.com/iziwen/1/edit ) に移動したところ、正常に動作しました。

ここに画像の説明を入力

サーバー側で問題が発生した場合は、に変更encType="multipart/form-data"することをお勧めしますenctype="application/x-www-form-urlencoded"(または、デフォルト値であるため、まったく使用しないでください) - は必要ありません。multipart/form-dataファイルを送信していません (詳細はこちらを参照)。

これで問題が解決しない場合は、送信しないことをより正確に指定してください。

編集:送信機能は使用しません。dijit/form/Formフォーム データを取得し、XHR 経由で Web サービスに送信するだけですが、送信機能がどのように機能するかを調べたところ、送信機能<iframe>を使用する必要があるようです。これは私が変更したものです:

A. フォーム定義 - target:"formSubmitIframe"iframe ID を指します:

<form
    id="myForm"
    data-dojo-id="myForm"
    data-dojo-type="dijit/form/Form"  
    data-dojo-props="action:'Cart.php', method:'post', target:'formSubmitIframe'"
>

B. iframe を追加:

<iframe name="formSubmitIframe" src="about:blank"></iframe>

すべてが機能したら、style="display:none;"iframe に追加して非表示にします。

JS Bin での動作をご覧ください: http://jsbin.com/iziwen/7/edit

注意:この方法でフォームを送信することはお勧めしません。クロスドメインに移動したり、ファイルを送信したりする必要がない場合は、フォーム データを 経由var data = dijit.byId("myForm").get("value")で取得するだけで、JSON 形式のフォーム データを取得してからdojo/xhr、 またはdojo/request(Dojo 1.8+ の場合) 経由で送信できます。

またdojo/xhr、フォーム ID を指定するだけでフォームを送信することもできます。これは良い例です: http://livedocs.dojotoolkit.org/dojo/xhr

于 2012-08-30T09:23:28.090 に答える