送信ボタンのないHTMLフォームを作成する最も近い方法を探しています。それ自体は非常に簡単ですが、送信のようなことが行われたときにフォームがリロードしないようにする必要もあります(たとえば、 Enter テキストフィールドに)。
Onsubmitハンドラーを(プレーンjsまたはjquery $()。submit(fn)を介して)フォームに追加し、特定の条件が満たされない限りfalseを返します。
フォームを送信したくない場合を除き、その場合は、フォーム要素の「アクション」属性を省略しないのはなぜですか?
ページのリロードを防ぎ、HTML標準を維持するために、フォームにaction="javascript:void(0);"
を含める必要があります。
このイベントをテキストフィールドに追加するだけです。 Enterキーを押すと送信が禁止され、必要に応じて送信ボタンを追加したり、form.submit()を呼び出したりできます。
onKeyPress="if (event.which == 13) return false;"
例えば:
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
フォームでEnterキーを押すと、フォームの自然な動作が送信されます。この自然ではない動作を停止するには、jqueryを使用して(デフォルトの動作)送信しないようにする必要があります。
$("#yourFormId").on("submit",function(event){event.preventDefault()})
アイデア:
<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
<input id="pwset" type="text" size="20" name='pwuser'><br><br>
<button type="button" onclick="CheckPassword()">Next</button>
</form>
そして
<script type="text/javascript">
$("#pwset").focus();
function CheckPassword()
{
inputtxt = $("#pwset").val();
//and now your code
$("#div1").load("next.php #div2");
return false;
}
</script>
解決する2つの方法:
最初の応答が最適なソリューションです。
Onsubmitハンドラーを(プレーンjsまたはjquery $()。submit(fn)を介して)フォームに追加し、特定の条件が満たされない限りfalseを返します。
Jqueryでより具体的に:
$('#your-form-id').submit(function(){return false;});
フォームを送信したくない場合を除き、その場合は、フォーム要素の「アクション」属性を省略しないのはなぜですか?
Chrome拡張機能は、ユーザー入力用のフォームがあるかもしれませんが、送信したくない場合の例です。action= "javascript:void(0);"を使用する場合、コードはおそらく動作しますが、最終的に この問題 になり、インラインJavascriptの実行に関するエラーが発生します。
アクションを完全に省くと、フォームがリロードされます。これはChrome拡張機能を記述するときに望ましくない場合もあります。または、何らかの計算機が組み込まれたWebページがある場合、ユーザーは入力を行い、「計算」またはそのようなものをクリックします。