2009-04-08 20 views
2

このCustomValidatorを機能させることができません。 FileUploadまたはテキストボックスのいずれかを記入しなければならない場合args.IsValidにする必要がありますどのようなASP.NET CustomValidatorクライアント側

<asp:FileUpload ID="fuFile" runat="server" size="70"/> 
<asp:TextBox ID="c101_c7" class="textbox" runat="server"/> 
<asp:CustomValidator ID="vldFile" runat="server" ClientValidationFunction="ValidateFile" 
    ErrorMessage="You must either upload a file or provide a URL of a file."></asp:CustomValidator> 

:体において

<script language="javascript" type="text/javascript"> 
    function ValidateFile(sender, args){ 
     alert("Hi"); 

     args.IsValid = document.getElementById("fuFile").value != "" || 
        document.getElementById("c101_c7").value != ""; 
    } 
</script> 

:<ヘッド>で

答えて

0

これは、それが(それはあなたが思うだろう何よりも違う可能ベースなので

document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value 
2

通常のボタンを使用して検証をトリガーしていますか?

このコードのどこにでも検証グループを実装していますか?

+0

ああはあなたに感謝!私は、ボタンが検証グループを持っていることに気付かなかった。 しかし、私はまだこの部分を間違っていると思います。あなたはそれを行う正しい方法を知っていますか? args.IsValid = document.getElementById( "fuFile")。value!= "" || document.getElementById( "c101_c7")。value!= ""; – Aximili

0

カスタムバリデータでControlToValidateプロパティを設定する必要があります。現在、バリデータはどのコントロールにもフックされていません。

また、マークアップのこの部分を投稿していないと確信していますが、ポストバックを行い、ポストバックの一部として検証を行うコントロールが必要です。このためにボタンが機能します。

5

私は、実際にコードが背後にあるコントロールのクライアント側のIDが何であるか、JavaScriptコードを教えてみましょうすることが参考作品)ASP .NETが行うことを決定したものに:

document.getElementById('<%=fuFile.ClientID %>'); 
3
<script type="text/javascript"> 
//<![CDATA[ 
    function validateField(sender, args) {   
     var regExp = /(^[a-zA-Z]{2,50})$/; 
     var val = document.getElementById(sender.controltovalidate).value; 
     args.IsValid = regExp.test(val); 
} 
//]]> 
</script> 
関連する問題