私は、常にポストバックを行う結果に関係なく、asp.net クライアント側の検証を開始するブラウンフィールド サイトに取り組んでいます。検証に失敗した場合、この動作を停止するアイデアはありますか?
前もって感謝します。
ポッジ
私は、常にポストバックを行う結果に関係なく、asp.net クライアント側の検証を開始するブラウンフィールド サイトに取り組んでいます。検証に失敗した場合、この動作を停止するアイデアはありますか?
前もって感謝します。
ポッジ
私の場合、ClientValidationFunction が欠落している CustomValidators がいくつかありました。
この問題を引き起こす可能性のある JavaScript エラーがページにないことを確認してください。
Custom Validator コントロールの w3schoolsまたはMSDNリンクを利用できます。クライアント側の検証を実行できます。使用例。
<asp:CustomValidator id="CustomValidator1" runat="server"
ErrorMessage="Number not divisible by 2!"
ControlToValidate="txtCustomData"
OnServerValidate="ServerValidate"
ClientValidationFunction="CheckEven" /><br>
Input:
<asp:TextBox id="txtCustomData" runat="server" />
<script language="javascript">
<!--
function CheckEven(source, args) {
var val = parseInt(args.Value, 10);
if (isNaN(val)) {
args.IsValid = false;
}
else {
args.IsValid = ((val % 2) == 0);
}
}
// -->
</script>
私は同じ動作をしていましたが、CausesValidation プロパティを True に設定して修正しました。
例: textbox を検証し、空のポストバックが呼び出されない場合は、ポストバックが呼び出されます。
ボタンクリックイベント:
<asp:TextBox id="vTextBox" runat="server" />
<asp:button id="okButton" runat="server OnClick="okButton_Click" OnClientClick=" return isValidate();"/>
<script type="text/javascript">
function isValidate() { var txt = $("#vTextBox").val();
if ( txt === "") { alert("error"); return false; }
else { alert(" no error "); return true; } }
</script>
クライアント検証の場合、検証のためにいくつかの JS 関数を呼び出す必要があります。
ボタンのクリックでクライアント側の検証メソッドを呼び出す場合は、以下のように呼び出す必要があります。
<asp:Button runat="server" id ="btnSubmit" onClientClick="return ValidateForm();" >
Validate Form メソッドは true または false を返す必要があります。
お気に入り :
function ValidateForm()
{
/// Validation goes here
if (validated)
{
return true;
}
else{
return false;
}
}
}