2016-04-29 9 views
1

おそらくこれは本当に簡単な解決策ですが、私の人生はこの問題を解決する方法を考え出すことができません。これまでに見つけたことはありませんでした。.onsubmitイベントで実行する関数を取得するにはどうすればよいですか?

私は、フォーム「適用」が提出されたときに実行する機能「検証」を取得しようとしている

function init() { 
    var applyForm = document.getElementById("apply"); 
    setJobValue(); 
    applyForm.onsubmit = validate; 
} 

を検証には、次のようになります。

function validate() { 
    alert("If this alert is up then validate is running"); 
    var dateOfBirth = document.getElementById("dob").value; 
    var state = document.getElementById("state").value; 
    var postcode = document.getElementById("postcode").value; 

など

関数 "setJobValue"が実行されているので(私はinitが動作していることを知っています)、コンソールにエラーはありませんが、どのような調整をして呼び出される必要がありますか?

+0

申し訳ありませんが、私は、送信ボタンが機能するということを言及しておきます。(値をユーザーに返してもらう必要があります)、最初に "validate"を実行していないようです。 – ChoiceKarpz

+0

コンソール ? – Rayon

+0

Nah、コンソールにエラーはありません – ChoiceKarpz

答えて

0

まあ、あなたのコードを上に置くと、HTMLがレンダリングされるときにスクリプトが実行されます。その間、それは異なるメモリと機能ブロックを割り当てます。その関数を再度呼び出すと、既存の参照のために異なる結果とエラーは発生しません。うーん、ちょっと変だけどJSのやり方は変わりません。あなたのJSコードをページの一番下に置くことを常にお勧めします。

+0

次にフィドルください:) – Aslam

+0

あなたはすでに答えを得ているようです。 – Aslam

0

代わりにinitメソッドからvalidateメソッドを直接呼び出すことができます。

function init() { 
    var applyForm = document.getElementById("apply"); 
    setJobValue(); 
    validate(); 
} 
+0

彼はなぜinitで検証したいですか?ユーザーがページとやりとりする前に、おそらく最初に起こるのはInitです。 – DannyThunder

0

イベントに関数を割り当てると、最後に起動します。 ので、あなたの場合には、これが

 


    function init() { 
      var applyForm = document.getElementById("apply"); 
      setJobValue(); 
      applyForm.onsubmit = functionToSave; 
     } 
 

を仕事とsubmitボタンのonclickイベントであなたの検証メソッドを呼び出す必要があります。

関連する問題