送信ボタンがないHTMLフォームを作成する最も簡単な方法を探しています。それ自体は非常に簡単ですが、送信のようなこと(たとえば、Enterテキストフィールドでの入力)が行われたときにフォームが再読み込みされないようにする必要もあります。
送信ボタンがないHTMLフォームを作成する最も簡単な方法を探しています。それ自体は非常に簡単ですが、送信のようなこと(たとえば、Enterテキストフィールドでの入力)が行われたときにフォームが再読み込みされないようにする必要もあります。
回答:
(プレーンなjsまたはjquery $()。submit(fn)を介して)onsubmitハンドラーをフォームに追加し、特定の条件が満たされない限りfalseを返します。
フォームを送信したくない場合を除き、フォーム要素の 'action'属性を省略しないのはなぜですか?
action
標準によれば、属性のないフォームはフォームではなく、実際には一部のブラウザでページが再読み込みされます。私はそれaction="javascript:void(0);"
がうまく機能していることを発見しました。
action="javascript:void(0);"
ページのリロードを防止し、HTML標準を維持するために、フォームに含める必要があります。
このイベントをテキストフィールドに追加するだけです。これにより、Enterキーを押したときの送信が防止され、必要に応じて送信ボタンを追加したり、form.submit()を呼び出したりできます。
onKeyPress="if (event.which == 13) return false;"
例えば:
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
アイデア:
<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>
最初の応答が最良の解決策です。
フォームにonsubmitハンドラーを(プレーンなjsまたはjquery $()。submit(fn)を介して)追加し、特定の条件が満たされない限りfalseを返します。
jqueryでより具体的に:
$('#your-form-id').submit(function(){return false;});
フォームを送信したくない場合を除き、フォーム要素の 'action'属性を省略しないのはなぜですか?
Chrome拡張機能の記述は、ユーザー入力用のフォームがある場合の例ですが、フォームを送信したくない場合です。action = "javascript:void(0);"を使用する場合、コードはおそらく機能しますが、インラインJavaScriptの実行に関するエラーが発生するこの問題が発生します。
アクションを完全に省略した場合、フォームが再ロードされます。これは、Chrome拡張機能を作成するときに望ましくない場合もあります。または、ユーザーが何らかの入力を行い、「計算」またはそのようなものをクリックする、組み込みの計算機のようなWebページがある場合。