私はASP.net Webアプリケーションに取り組んでいます。
送信ボタンのあるフォームがあります。送信ボタンのコードは、<input type='submit' value='submit request' onclick='btnClick();'>
のようになります。
次のようなものを書きたい:
function btnClick() {
if (!validData())
cancelFormSubmission();
}
どうすればいいですか?
やってみた方がいい...
<form onsubmit="return isValidForm()" />
isValidForm()
がfalse
を返す場合、フォームは送信されません。
また、おそらくイベントハンドラーをインラインから移動する必要があります。
document.getElementById('my-form').onsubmit = function() {
return isValidForm();
};
入力をこれに変更します。
<input type='submit' value='submit request' onclick='return btnClick();'>
関数でfalseを返します
function btnClick() {
if (!validData())
return false;
}
変更する必要があります
onclick='btnClick();'
に
onclick='return btnClick();'
そして
cancelFormSubmission();
に
return false;
とは言っても、優れたイベント処理APIを備えたライブラリ(YUIやjQueryなど)では nobtrusive JS を優先して組み込みイベント属性を回避し、本当に重要なイベントに結び付けようとします(つまり、ボタンのクリックイベントではなく、フォームの送信イベント)。
onsubmit
はasp.netで動作しない場合があります。
非常に簡単な方法で解決しました。
そのような形があれば
<form method="post" name="setting-form" >
<input type="text" id="UserName" name="UserName" value=""
placeholder="user name" >
<input type="password" id="Password" name="password" value="" placeholder="password" >
<div id="remember" class="checkbox">
<label>remember me</label>
<asp:CheckBox ID="RememberMe" runat="server" />
</div>
<input type="submit" value="login" id="login-btn"/>
</form>
フォームポストバックの前にそのイベントを取得し、ポストバックから停止して、このjqueryを使用して必要なすべてのAjaxを実行できるようになりました。
$(document).ready(function () {
$("#login-btn").click(function (event) {
event.preventDefault();
alert("do what ever you want");
});
});
タイプをsubmit
からbutton
に変更する必要があります。
<input type='button' value='submit request'>
の代わりに
<input type='submit' value='submit request'>
次に、javascriptでボタンの名前を取得し、必要なアクションを関連付けます
var btn = document.forms["frm_name"].elements["btn_name"];
btn.onclick = function(){...};
私のために働いて、それが役立つことを願っています。
return false;
する必要があります:
<input type='submit' value='submit request' onclick='return btnClick();' />
function btnClick() {
return validData();
}
単純で、falseを返すだけです。
以下のコードは、jquery。を使用した送信ボタンのonclick内にあります。
if(conditionsNotmet)
{
return false;
}
送信ボタンを通常のボタンに変更し、クリックイベントで検証テストに合格したらフォームを送信してみませんか?
例えば
<input type='button' value='submit request' onclick='btnClick();'>
function btnClick() {
if (validData())
document.myform.submit();
}
onclick='return btnClick();'
を使用します
そして
function btnClick() {
return validData();
}
function btnClick() {
return validData();
}
onSubmit
が必要です。 onClick
ではない場合、誰かがEnterを押すだけで、検証がバイパスされます。キャンセルは。 falseを返す必要があります。コードは次のとおりです。
<form onSubmit="return btnClick()">
<input type='submit' value='submit request'>
function btnClick() {
if (!validData()) return false;
}
編集 onSubmitはformタグに属します。
<input type='button' onclick='buttonClick()' />
<script>
function buttonClick(){
//Validate Here
document.getElementsByTagName('form')[0].submit();
}
</script>