私は自分のJQueryの検証をしたフォームを持っています。 JQuery <button id=btnRegister type=submit>
をクリックすると、私の検証コードが呼び出され、無効な場合、フォームは送信されません。すべての作品は素晴らしいです。JQuery <button> onclick()およびonserverclick()を使用します。ありえない?
私はこのフォームに別の<button id=btnSave>
を持っています。 フォームデータが有効な場合のみ、btnSaveがasp.netサーバーサイドイベント(onserverclick)を起動するようにします。
私は、次の試してみました - 私はbtnSaveをクリックすると <button type=submit onclick='if($(this).closest('form').submit()==false) return;' onserverclick='btnSave_click' runat =server>Save</button>
は、それが無効の場合は正しく、falseを返し、私のフォームの提出イベントハンドラを呼び出すん。ここまでは順調ですね。この後、onserverclickイベントは、トリガーではありません。ただし、フォームが無効であっても、onserverclickがトリガーし、ページがポストバックします。
私が見ているように、onclickとonserverclickを同時に持つことはできません。 私はそれらを調和的に共存させるために何をすべきですか? <button>
を<input type=submit>
に変更するとすべて機能します。でも、私は<button>
のルック・アンド・フィールが好きです。
trueを返すとポストバックはしませんが、私はonclickが常にfalseを返すようにしたくありません。入力が有効な場合はtrueを返します。私はsubmit()関数の値を返そうとしましたが、[object object]を返します。だから、私の質問を言い換える必要があります - どのように私のsubmit()関数の戻り値を得るには – tubelight
アラート($(this).closest( 'form')。submit())はtrue/falseではなく[object]を返します。フォームのsubmit関数から戻り値を取得するにはどうすればよいですか? – tubelight
イベントハンドラは常に、イベントのデフォルトが発生するかどうかを示す 'ブール値 'を返します。デフォルトの「送信」動作が発生しないようにする場合、つまりポストバックの場合、入力が有効かどうかにかかわらず、 'false'を返すべきです。 – Domenic