2012-02-08 8 views
1

javascript-coder.comのスクリプトを使用して入力フィールドでJavaScriptバリデーターを使用するページを作成しましたが、使用できません私はフォームを送信します。これは、検証スクリプトが使用している関数と競合しているためです。私の現在の送信ボタン:JSの競合によるHTML送信ボタンのJavaScript代替

標準のHTML送信ボタンを使用すると、スクリプトは正常に動作します。検証スクリプトと競合することなくフォームを提出する他の方法や機能はありますか?私はJSで検証スクリプトを分けて開始するのに十分な自信がありません。

ご不明な点がありましたらお気軽にお問い合わせください。 おかげで、

+1

「検証スクリプトを使用している機能と競合する」とはどういう意味:詳細については、このページを参照してください?あなたはどんなエラーを受け取っていますか? – Domenic

+1

標準のHTML送信ボタンが機能する場合、なぜそれを使用できないのですか? –

+0

前の状態と、追加した内容と、競合の内容を説明してください。バリデーションスクリプトを挿入したばかりの場合、どのように動作しますか?検証はいつ行われますか?あなたはコンソールをチェックしましたか? – Joseph

答えて

0

は、それはあなたの実際のコードである場合、あなたは間違ってthisキーワードを使用しているこの

<a href="" class="submit" onClick="document.form.submit();">Submit</a>

1

を試してみてください。インライン関数から呼び出された場合、これは要素が呼び出されている要素、つまりアンカータグを参照します。 (詳細はhttp://www.quirksmode.org/js/this.htmlを参照してください)私が知っている限り、formタグからフォームを提出する必要があります。

あなたが使用する必要がありますが、これらのいずれかのようなものです:

document.getElementById('myForm').submit(); 
document.forms[0].submit(); 
document.getElementsByClassName('submit')[0].submit(); /* not IE8 compatible */ 

また、あなたはあなたが必要と、IDタグを持つページに知られている順にいるとあなたの要素に頼ることができない場合IEの互換性は、あなたがボタンが中に座っているという形を見つけるまで、DOM「UP」検索を続けることができ、その提出:

var parentelem = this.parentNode; 
while (parentelem.nodeName.toLowerCase() != 'form') { 
    parentelem = parentelem.parentNode; 
    if (parentelem == null) { break; } 
} 
if (parentelem != null) { 
    parentelem.submit() 
} 
+0

これは役に立ちます。私はさらに調査したときに戻ってきます。入力いただきありがとうございます。 –

0

検証スクリプトは、検証をトリガするために、フォームのをonSubmitイベントを使用しています。プログラムでフォームを送信すると、そのイベントは解雇されます。これは動作するはずです:

<a href="" class="submit" onClick="if(document.yourform.onsubmit()){document.yourform.submit();}">Submit</a> 

yourformは、フォームのIDです。

http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml

関連する問題