2017-11-23 10 views
-1

バックエンドコントローラとJavaScript関数を実行する次のスプリングフォームがありますが、すべて動作しますが、フォームを送信する前にJavaScript関数を実行する必要があります。どうやってするか?フォームを送信する前にJavascript関数を実行

次のコードは、JavaScriptを実行する前にフォームを送信します。

<form:form modelAttribute="api" id="form"> 
       <form:textarea path="text" class="form-control" rows="10" id="redacttext"/> 
       <button type="submit" class="btn btn-default">Submit</button> 
</form:form> 

のJavascript機能

function dosomething() { 
//do something 
} 

jqueryの

ここ
$('#form').submit(function() { 
     dosomething(); 
    }); 
+2

あのを試すことができます。それが提出される前に、おそらくそれを見る時間はないでしょう。あなたは正確に何を達成しようとしていますか? –

+0

私はこの権利を理解しているかどうかはわかりませんが、ユーザーが送信ボタンをクリックしてから関数を呼び出し、必要に応じてフォームを送信すると、PreventDefault()を使うことができます。 –

+0

はい、デフォルトを防ぎ、フォームを送信できます。しかし、これは非同期的に何かをやっている場合にのみ役に立ちます。 OPは 'doSomething()'が何であるかについて言及していない。しかし、同期している場合は、フォームが送信される前に実行されますが、おそらくそれが起こったことを認識するでしょう。 –

答えて

2

でjavascript関数を実行する実施例です。

$('#submit').on('click',function() { 
 
    dosomething(); 
 
    
 
}); 
 

 
function dosomething() { 
 
    console.log('here'); 
 
    //return false; 
 
    // if you want to submit the form here 
 
    $('#form').submit(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form:form modelAttribute="api" id="form"> 
 
    <form:textarea path="text" class="form-control" rows="10" id="redacttext" /> 
 
    <button type="button" id="submit" class="btn btn-default">Submit</button> 
 
</form:form>

+0

しかし、フォームisn提出されません –

+0

いいえ、$( "#form").submit();サブミットハンドラを再帰的に呼び出す。 $( "#form")[0] .submit();を使用してください。例: –

+0

また、falseを返してから送信を試みていますが、これは到達不能なコードです。 –

0

終わりpreventDefault Event

$('#form').submit(function(e) { 
     e.preventDefault(); 
     dosomething(); 
    }); 

とあなたのdoSomethingの()関数内を使用してみてください追加します。

$("#form").submit(); 

これは、最初にあなたのdoSomethingのを実行します()関数を呼び出し、関数を介してフォームを提出します。

+1

いいえ、 '$(" #form ").submit();'は再帰的にサブミットハンドラを呼び出します。 '$(" #form ")[0] .submit();'例えば –

+0

を使用する必要があります。 Idは一意でなければならない。 – zagzter

+0

申し訳ありませんが、私はここで、 "Id"は "ユニークでなければならない"という点を見ていないのですか?どのIDが重複していますか? –

0

フォームを送信する前にコードを実行されます。この

$("#form").submit(function(e) { 
    e.preventDefault(); 
    ..... do you action/ call custom function 
    this.submit(); 
    return false; //I put it here as a fallback 
}); 
+0

このサイトであなたが提供するすべての回答にあなたのウェブサイトを宣伝しないでください。コミュニティにとって有用ではなく、純粋にスパムのように見えます。 –

関連する問題