2011-12-20 11 views
0

実行時に必要なフィールドバリデーターをページに追加しようとしています。そこに空想 何もありません:動的に作成されたrequiredfieldvalidatorがクライアント側の検証をバイパスします

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 
     <asp:ValidationSummary ID="ValidationSummary1" 
     runat="server" ShowMessageBox="True" ShowSummary="False" /> 
</form> 

と@の分離コード

protected void Page_Init(object sender, EventArgs e) 
    { 
     RequiredFieldValidator theValid = new RequiredFieldValidator(); 
     theValid.ID = "0000" + "RFV"; 
     theValid.ControlToValidate = TextBox1.ID; 
     theValid.ErrorMessage = "Message here" 
     theValid.Text = "*"; 
     theValid.Display = ValidatorDisplay.Dynamic; 
     theValid.EnableClientScript = true; 
     theValid.EnableViewState = true; 
     theValid.SetFocusOnError = true; 
     theValid.Enabled = true; 
     theValid.Visible = true; 
     Page.Validators.Add(theValid); 
     form1.Controls.Add(theValid); 
    } 

私はそれだけで、クライアント側、サーバー側の検証ではなく、ボタンをクリックします。私は何が欠けていますか?

TIA。

答えて

0

jqueryでコードをチェックすることができます。

function TextBoxValidate() { 
$('input:[type="text"]:[id*="TextBox1"]').each(function() { var txtId = this.id; $('span').each(function() { if (this.controltovalidate == txtId) ValidatorValidate(this); }); }); 
} 
function InitValidationOnClick() 
{ 
$('input:[id*="Button1"]').each(function(){$(this).on('click', function(){TextBoxValidate(); return Page_IsValid;});}); 
// or other case 
//$('form:[id*="form1"]').each(function(){$(this).on('submit', function(){TextBoxValidate(); return Page_IsValid;});}); 
} 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitValidationOnClick); 

バリデータがページに存在する場合は、イベント(クライアント側)をクリックして検証します。

0

こんにちはすべてRequiredFieldバリ

コードと一緒にラジオボタンの場合、このいずれかを試してみてください

TableRow trow4 = new TableRow(); 
    trow4.Style.Add("width", "100px"); 
    TableCell tcel4 = new TableCell(); 
    Label lb4 = new Label(); 
    lb4.Text = Resources.QcLabelName.Gender; 
    tcel4.Controls.Add(lb4); 
    CSSCell(tcel4); 
    table.Rows.Add(trow4); 
    RadioButtonList rblist = new RadioButtonList(); 
    rblist.ID = "rbtnmalendfemale"; 
    rblist.Items.Add("Male"); 
    rblist.Items.Add("Female"); 
    tcel4.Controls.Add(rblist); 
    trow4.Cells.Add(tcel4); 
    table.Rows.Add(trow4); 
    rblist.Visible = true; 
    RequiredFieldValidator rFV5 = new RequiredFieldValidator(); 
    TableCell tcl46 = new TableCell(); 
    rFV5.ControlToValidate = "rbtnmalendfemale"; 
    rFV5.ErrorMessage = "Gendor Selection Is Mandatory"; 
    rFV5.Style.Add("color", "Red"); 
    rFV5.ID = "Reqfield9"; 
    tcl46.Controls.Add(rFV5); 
    trow4.Cells.Add(tcl46); 
    table.Rows.Add(trow4); 
    rFV5.Visible = true;****** 
関連する問題