2013-04-17 20 views
12

私には<input type="submit"のフォームがあります。クロムでは提出は何もしません。開発者ツールのタブの「ネットワーク」には何も表示されません。開発者ツールのエラーもありません。一方、ページを保存して保存したページを開くと、[送信]ボタンを押すと、[ネットワーク]タブに何かが表示されます。これはchromeとfirefoxで起こります。これはIEで期待どおりに動作します。送信ボタンが機能しません

誰でも後天的な見方がありますが、どうすればいいですか?

編集:私は直接の回答は必要ありません。私は知る必要があります。どこを見てください。誰かが指示を投稿し、それが私の問題を解決するのに役立つなら、私は正しい答えとしてそれを受け入れます。

EDIT2:ページの構造は次のようになります。

html 
    head 
    body 
     div 
     div 
      form 
      form 
      form 
      form 
      form 
       input 
       input 
       table 
       table 
        tbody 
         tr..td..input type=submit 

EDIT3:私たちは、それがページにhref="#"を含む、リンクだったということでしたし、そのリンクをクリックした後に停止して提出、実際の問題を発見しましたなぜなら、#がURLの末尾に追加され、フォームのactionが空だったので、それは#を含む現在のURIからURIを取得したため、送信する代わりに、ブラウザは現在のページにジャンプしました。

+8

私はコードが必要です... – Jace

+0

@ Jace私のWebアプリケーションからページを開くときに問題はありますが、ページを保存すると何かが実行されます。だから、HTMLコードはここで助けにならないでしょう。また、私は直接の答えは必要ありません、問題は何か。私は方向性だけを見なければならない。 – dhblah

+1

...フォームの中にありますか? フォームが正常に整形されているか、HTMLが壊れていますか? フォームにはアクションとメソッドがありますが、それらは正しいのですか?これをローカルで開発し、相対パスを使用して、サーバ/ローカルホスト上で実行する必要がありますか?私たちは考えていません... – Norguard

答えて

10

フォームの検証にjavascript/jqueryを使用していない場合、フォームの単純なレイアウトは次のようになります。 HTMLドキュメントの本体内

は:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
    <input type="text" name="fname" id="fname" />  
    <input type="submit" value="submit"/> 
</form> 

あなたはフォームタグ内の送信ボタン、および割り当てられた適切なアクションを持っていることを確認する必要があります。 PHPファイルへの送信など。

もっと直接的な答えを得るには、作業しているコードを入力してください。

あなたは以下の使用を見つけることがあります。http://www.w3.org/TR/html401/interact/forms.html

+0

ありがとう、私はおそらく問題は、そのフォームに空のアクション属性があることだと思います。私はそれをさらに調査します。 – dhblah

+0

私の場合、ボタンの上にオーバーレイされたコンテンツのない絶対的に配置されたdivがありました。例からマークアップをコピーして貼り付け、目に見えない要素が原因であると判断するのに数日かかりました。 –

12

HTML5を使用していますか?その場合は、requiredという名前のフォームに<input type="hidden">があるかどうかを確認してください。そのrequiredプロパティを削除します。 Internet Explorerはこのプロパティを使用しないため、動作しますが、Chromeは動作します。

+0

これは上にあった。私はこのことを考えるのにどれくらいの時間がかかるのか分かりません。 –

3

確認ページでjqueryの/ javascriptの検証の任意の並べ替えを使用して、それを無効にしてみてくださいと何が起こるか見ている場合。あなたのブラウザの開発者ツールを使用して、バリデーションまたはバリデーションのあるjavascriptファイルがロードされているかどうかを確認することができます。また、非表示のフォーム要素(つまり、表示するように設定されたスタイル:なしなど)を探して、レンダリングされていない要素に隠れた検証エラーがないことを確認することもできます。

+1

私を救ったのですが、同じボタンでフォーム提出とフォーム検証を達成する方法はありますか? –

+0

はい、理想的には、多くのバリデーションライブラリとそのツールが使用できます。彼らはただの形で結びつけるべきです。フォームの提出が機能しない場合、おそらく何かが壊れている可能性があります。たとえば、特定のバージョンのjquery validateプラグインで、Nuget GalleryのオープンソースWebサイトで使用されていたバグが見つかりました。ファイルの拡張子に基づいて正しく検証されていましたが、バグによって検証エラーが表示されなくなっていました。だから、バグを修正しましたが、私は遅れてライブラリのバグを修正するためのプルリクエストを発行しませんでした。 –

3

私は今日、この問題に直面し、問題は、私はonclickのドキュメント内のイベントのデフォルトのアクションを阻止した。

document.onclick = function(e) { 
    e.preventDefault(); 
} 

ドキュメントはonclickの通常イベントの委任に使用されているが、それはすべてのイベントのデフォルトを防ぐために間違っている、あなたを

document.onclick = function(e) { 
    if (e.target instanceof HTMLAnchorElement) e.preventDefault(); 
} 
1

私はこれを友人のHTMLコードで実行しましたが、彼の場合は引用符がありませんでした。例えば

:この例では

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
<input type="text" name="fname" id="fname" style="width:90;font-size:10>  
<input type="submit" value="submit"/> 
</form> 

、入力テキストfnameの上の欠落している引用符は、単に送信ボタンを非使用可能とフォーム提出はありませんがレンダリングされます。

もちろん、これは最初はCSSを使用する必要があるので悪い例ですが、とにかく、一重引用符と二重引用符をすべてチェックして、それらが正しく終了していることを確認してください。

また、センターのようなタグがある場合は、フォームから移動してください。

<form action="formHandler.php" name="yourForm" id="theForm" method="post"> 
<center> <-- bad 

奇妙なことに思われるかもしれませんが、それは影響を与える可能性があります。

関連する問題