Start_dateフィールドが空でないかどうかをチェックし、送信ボタンがクリックされたときに適切なメッセージを表示する次の関数を記述しました。しかし、その後、前のページに制御を移します。そのため、ユーザーはそのフォームの他のすべてのフィールドを再度書き込む必要があります。他のすべてのフィールド値を使用して、エラーメッセージが表示された後でもそのページにとどまる方法はありますか?.
//JavaScript
function checkform() {
if(document.frmMr.start_date.value == "") {
alert("please enter start_date");
return false;
} else {
document.frmMr.submit();
}
}
// HTML
<html>
<form name=frmMr action="page1.jsp">
Enter Start date:
<input type="text" size="15" name="start_date" id="start_date">
<input type="submit" name="continue" value="submit" onClick="checkform();">
</form>
</html>
前もって感謝します
チェックフォームに戻り値がある場合、それはどこでも使用されていません。代わりにonclick="return checkform()"
を使用してください。
どちらもボタンをクリックしても機能しますが、フォームタグ内でこのメソッドをonsubmit="return checkform()"
に置き換えることを検討してください。
あなたは単純にstart_dateを必要とするようにすることができます
<input type="submit" value="Submit" required />
この場合、checkform()は必要ありません。
ありがとう
関数を呼び出す前にreturnを使用します。送信ボタンをクリックすると、2つのイベント(送信ボタンとonclickの関数呼び出しを使用した場合のフォームの投稿)が発生し、フォームの投稿を防止するためにfalseを返す必要があります。戻り値を指定する必要があります。つまり、関数からの値を期待するには、
これはコードです:
input type="submit" name="continue" value="submit" onClick="**return** checkform();"
確かではありませんが、送信中のようです。私の簡単な解決策はあなたを変更することです(あなたのコードをここで推測してください):
<input type="submit" value="Submit" onclick="checkform()">
ボタンに:
<input type="button" value="Submit" onclick="checkform()">
そうすれば、フォームはまだ(checkform()のelse部分から)送信され、ページを再読み込みすることはできません。
それを処理する他の、おそらくより良い方法がありますが、これは当面は機能します。