0

JavaScript を使用して必須フィールドのバリデーターを有効または無効にしようとしていますが、ValidatorEnable が定義されていないというエラー メッセージが引き続き表示されます。以下のコードを見つけてください。

ASP.Net

<asp:RequiredFieldValidator EnableClientScript="True"  Display="None" ID="rfvMostRecentEmployer" ControlToValidate="txtMostRecentEmployer" runat="server" ErrorMessage="Most recent employer title is a required field"></asp:RequiredFieldValidator>

Javascript

var validatorMostRecentEmployer = document.getElementById('<%= rfvMostRecentEmployer.ClientID %>');

ValidatorEnable(validatorMostRecentEmployer, !hasCv);

コードビハインド

protected void Page_Load(object sender, EventArgs e)
{
    rblCV.Attributes.Add("onClick", string.Format("ShowCvOptions();"));
    ...
}
4

4 に答える 4

4

ValidatorEnable 他の場所から呼び出す前に、関数が配置されていることを確認してください。

于 2012-07-08T13:27:22.837 に答える
2

asp.net バリデータ コードが含まれる前に JavaScript コードを実行しようとしている可能性があります。

jQuery を使用している場合は、コードを次のようにラップしてみてください。

$(document).ready(function () {
  var validatorMostRecentEmployer = document.getElementById('<% =rfvMostRecentEmployer.ClientID %>');

  ValidatorEnable(validatorMostRecentEmployer, !hasCv);
});

(JavaScriptからasp.netコントロールを参照する正しい方法であるAshwinのアドバイスも取り入れました)

于 2012-07-08T13:14:54.663 に答える
1

ClientID が問題である可能性があります。

var validatorMostRecentEmployer = document.getElementById('<% =rfvMostRecentEmployer.ClientID %>');

ValidatorEnable(validatorMostRecentEmployer, !hasCv);

更新ただし、エレガントなソリューションではありませんが、何もしなくても機能します。

function disableValidator() 
{ 
var myval = document.getElememtById('<% =rfvMostRecentEmployer.ClientID %>'); 
myval.style.cssText=""; 
myval.style.display='none'; 
myval.style.accelerator=true; 
} 
于 2012-07-08T13:11:01.813 に答える
0

サーバー側のコードを掘り下げた後、クライアント側のスクリプトを無効にしていて、登録を停止していたに違いない次のコードを見つけました。

//Clear client side validators
foreach (BaseValidator bv in Page.Validators)
{
    bv.EnableClientScript = false;
}

これを手伝ってくれたみんなに感謝します。

于 2012-07-08T18:17:45.517 に答える