私はいくつかの古い ASP.NET プロジェクトを作り直す必要がありましたが、これが ASP との最初の接触であるため、私はそれをまったく理解していません。
私はいくつかの 5-6 フィールドを持ついくつかのデジタル フォームを持っています。
各バリデーターにはクライアント側の JavaScript 関数が添付されているため、フィールドからフォーカスを外すと検証され、検証が正しくない場合は赤いアスタリスクが表示され、何かが間違っていることがわかります。
たとえば、1つの機能は次のとおりです。
function validateEmail(src, arg) {
var email = document.getElementById('txtEmail_txt').value;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
arg.IsValid = reg.test(email);
}
これで問題ありませんが、すべての必須フィールドが有効な場合に「続行」ボタンが有効になる追加の「機能」が必要です。
これを行うには、「.ascx.cs」ファイルでチェック関数を使用してコントロールをバインドします。
txtEmail.textbox.AutoPostBack = true;
txtEmail.textbox.TextChanged += new EventHandler(requiredfields_TextChanged);
chkEmailCheck.AutoPostBack = true;
chkEmailCheck.CheckedChanged += new EventHandler(requiredfields_TextChanged);
次に、要件が正しければ、Project の値を true に設定します。
void requiredfields_TextChanged(object sender, EventArgs e)
{
Project p = setProject();
btnSave.Enabled = EnableSubmitBtn(p);
}
そして使いたかった
private bool EnableSubmitBtn(Project p)
{
if (p.ProcedureType == 2)
{
if ('CustomValidator3 is valid' && chkEmailCheck.Checked==true){
return true;
}
}
else
{
}
return false;
}
ここで、CustomValidator3 (CustomValidator3.isValid == true のようなもので、ちなみに動作しません) から応答を取得できるかどうか、または JavaScript 関数をサーバー側関数に書き換える唯一の方法であるかどうかは定かではありません。その機能をチェックしますか?