フォームの外にあるボタンからのみ送信したい html フォームがあります。JavaScript を使用して検証を行っていますが、JavaScript 関数が成功しない限りフォームを送信したくありません。フォーム内にボタンがある場合、JavaScriptに関係なく常に送信されますが、ユーザーがEnterキーを押したときにフォーム外にある場合、フォームが送信されるだけです。送信する代わりにボタンのjavascriptを実行するように入力するにはどうすればよいですか?
<form name="form1" action=<?$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"]?> method="post">
<input type="text" maxlength="5" size="5" name="frmZip" value="">
<input type="hidden" name="frmLat" value="200">
<input type="hidden" name="frmLng" value="200">
<input type="submit" disabled="disabled" style="display:none" />
</form>
<button type="button" id="GetCoordinates" onclick="doClick();">Find Stores</button>
編集:私の解決策を見つけました。から変えました
</form>
<button type="button" id="GetCoordinates" onclick="doClick();">Find Stores</button>
に
<input type="button" name="frmSubmit" onclick="doClick();" value="Submit">
</form>
これにより、ボタンがフォームを送信できなくなったため、javascript を介して doClick() で送信しました。
編集 2: これはしばらくは機能しているように見えましたが、Enter キーストロークのキャッチを停止しました。ボタンを次のように更新しました。
<input type="submit" name="frmSubmit" onclick="return doClick();" value="Find Stores">
doClick() では常に false を返します。これにより、すべてが実行されたら、javascript を介してフォームを送信できました。