• ベストアンサー

どうしてもAタグでsubmitしたい

<form action="ccenter/index.php?form=2" name="ccenter" method="post" onsubmit="return xoopsFormValidate_ccenter();"> お世話になります。このフォームの送信ボタンをAタグで行うことは可能でしょうか。 xoopsFormValidate_ccenter();は入力チェックです。 当方で, <a href="" onclick="submit()">Submit</a> とし.ても動きません。 初歩的で申し訳ございませんが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

入力チェックのScriptを弄る必要はありません。 原因は、form.submit() は submit イベントを発火しないからformのonsubmit属性で入力チェックが動かないのです。 http://okwave.jp/qa/q6120946.html <a href="" onclick="ccenter.submit();">Submit</a> を <a href="" onclick="if(xoopsFormValidate_ccenter())ccenter.submit();">Submit</a> にすればいかがですか

shitam
質問者

補足

何度もすいません。 上記を試したところ、入力チェックは働くようになりましたが、 フォームが送信されませんでした。 その後、return false; を追加 <a href="" onclick="if(xoopsFormValidate_ccenter())ccenter.submit();return false">Submit</a> したところ、入力チェックとフォーム送信両方いけるようになりました。 有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • g_liar
  • ベストアンサー率52% (382/728)
回答No.1

JavaScriptのsubmit()は、フォームオブジェクトのメソッドです。 onClickで、ccenter.submit(); を実行すれば良いです。

shitam
質問者

補足

<a href="" onclick="ccenter.submit();">Submit</a> としたところ、下記のフォームチェックは実行されませんでした。 スクリプトもどこか変えないといけないのでしょうか? <script type="text/javascript"> <!--// function checkItem(obj, lab, pat) { msg = lab+": Need this field input\n"; if (typeof(obj.selectedIndex)=="number" && obj.value != "") return ""; if (typeof(obj.length)=="number") { for (i=0; i<obj.length; i++) { if (obj[i].checked) return ""; } return msg; } if (obj.value.match(new RegExp('^'+pat+'\$', 'm'))) return ""; if (obj.value == "") return msg; return lab+": Please input correct format\n"; } function xoopsFormValidate_ccenter() { myform = window.document.ccenter; msg = ""; obj = null; msg = msg+checkItem(myform["cc1"], "First Name*", ".+"); if(msg && obj==null)obj=myform['cc1']; msg = msg+checkItem(myform["cc2"], "Last Name*", ".+"); if(msg && obj==null)obj=myform['cc2']; msg = msg+checkItem(myform["cc3"], "Adress*", ".+"); if(msg && obj==null)obj=myform['cc3']; msg = msg+checkItem(myform["cc4"], "Postal Code(Zip)*", ".+"); if(msg && obj==null)obj=myform['cc4']; msg = msg+checkItem(myform["cc5"], "Country*", ".+"); if(msg && obj==null)obj=myform['cc5']; msg = msg+checkItem(myform["cc6"], "Telephone*", ".+"); if(msg && obj==null)obj=myform['cc6']; msg = msg+checkItem(myform["cc8"], "Email*", ".+"); if(msg && obj==null)obj=myform['cc8']; if (msg == "") return true; window.alert(msg); if (typeof(obj.length)!="number") obj.focus(); return false; } function checkedEtcText(lab) { obj = xoopsGetElementById(lab+"_eck"); if (obj) obj.checked=true; } //--> </script>

すると、全ての回答が全文表示されます。

関連するQ&A