Server Side Xforms Form Validation And Integration
Mar 22, 2010
I have recently been investigating methods of creating web-based forms for an ASP.NET web application that can be edited and managed at runtime. For example an administrator might wish to add a new validation rule or a new set of fields.
The holy grail would provide a means of specifying a form along with (potentially very complex) arbitrary validation rules, and allocation of data sources for each field. The specification would then be used to update the deployed form in the web application which would then validate submissions both on the client side and on the server side.
My investigations led me to Xforms and a number of technologies that support it. One solution appears to be IBM Lotus Forms, but this requires a very large investment in terms of infrastructure, which makes it infeasible, although the forms designer may be useful as a stand-alone tool for creating the forms. I have also discounted browser plug-ins as the form must be publicly visible and cross-browser compliant.
I have noticed that there are numerous javascript libraries that provide client side implementations given an Xforms schema. These would provide a partial solution but server side validation is still a requirement.
Another option seems to involve the use of server side solutions such as the Java application Orbeon. Orbeon provides a tool for specifying the forms (although not as rich as Lotus Forms Designer), but the most interesting point is that it can translate an XForms schema into an XHTML form complete with validation. The fact that it is written in Java is not a big problem if it is possible to integrate with the existing ASP.NET application.
So my question is whether anyone has done this before. It sounds like a problem that should have been solved but is inherently very complex. It seems possible to use an off-the-shelf tool to design the form and export it to an Xforms schema and xhtml form, and it seems possible to take that xforms schema and form and publish it using a client side library. What seems to be difficult is providing a means of validating the form submission on the server side and integrating the process nicely with .NET (although it seems the .NET community doesn't involve themselves with XForms; please correct me if I'm wrong on this count).
I would be more than happy if a product provided something simple like a web service that could validate a submission against a schema. Maybe Orbeon does this but I'd be grateful if somebody in the know could point me in the right direction before I research it further.
if screen reader fill any content wrong then how to give info (if javascript is disabled) to user to go that field any fill the correct value. with jvascript we can show javascript alert but if js is disabled then? I need solution for asp.net 20 and PHP both.
I've got my validation wired up through my Service layer, and my Birthdate property looks like this.
[Code]....
The client side validation works properly if I input something like `12/12/1990` but when the form is submitted, the server side validation trips and I'm told the entry is invalid. I'm using the jQuery-UI Datepicker to input the date, however when I disable the datepicker, the problem persists.Am I missing something here? I thought the client side and server side would be the same thing.If I remove
[Code]....
Then the form submits. It's obviously something to do with the Regex.
want to know that can we validate a control which is out side a form element in asp.net(server side validation)and outside a form element in html(client side validation) let's take a closer look
I'm interested in identifying a means to verify the server-side validation is performing as expected, but need to bypass the client-side validation being done using ASP.NET validation controls. To test this, I've tried using the form Poster add-on to Firefox that allowed me to get/modify the page contents and post it, but the .NET framework interpreted the submission as harmful and threw an application error ("A potentially dangerous Request.Form value was detected from the client").I've created a WinForm that includes a WebBrowser control and I'm able to manipulate the contents of the web page and invoke the button click, but am interested in seeing how to allow a postback with invalid input values. I don't want to assume the server-side validation works (even though I do check if Page.IsValid on the server on postback).This submits the web form in the WebBrowseer control and the expected client-side validation fires: extendedWebBrowser1.Document.GetElementById(formButtonName).InvokeMember("click"); This is how I've manipulated some of the page contents (this just prevents submission): mshtml.IHTMLDocument2 doc = extendedWebBrowser1.Document.DomDocument as mshtml.IHTMLDocument2; string html = doc.body.innerHTML; html.Replace("Page_ValidationActive = false", "Page_ValidationActive = true"); doc.body.innerHTML = html.ToString(); extendedWebBrowser1.Document.GetElementById(formButtonName).InvokeMember("click");
If I enable client side validation in the view I'll get the error per the Attributes from the metadata class. If I take clientside validation out, error gets thrown from saving to the DB rather than return the view with an Error Summary.
This is the top portion of my view....
<% using (Html.BeginForm()) {%> <%: Html.ValidationSummary(true) %>
I've tried running without debugging (ctrl + f5) in debug and release mode as well as setting breakpoints and Debugging (f5) but it just seems weird to get Client side validation without server side validation. What am I missing here?
I have and problem of validate my element from the out side the form tag.
Here I am describe what I have done and what i need :
[code]...
now this TxtSite element is out side that SiteDetail form and i want to validate this element when i have submit data this validation should be validate.
I am using ASP.NET's server-side validation. In the page_load event I'm calling Page.Validate(), and if Page.IsValid is not true I'm then polling the controls to figure out which ones are not valid, and then determining what actions to take.It would be much easier if each control would raise an event as validation fails, allowing me to take action for that particular control. I'm very much a naive programmer when it comes to validation, but is there a way to extend these controls so that a validation error raises an event?
Is there any way to add a confirmation dialog to a submit button when the form already has other validation controls and a summary control using "showmessagebox=true"? I tried adding
OnClientClick="return confirm('Are you sure?');" to the submit button, but that seems to block all of the other validation?
When I click submit, It does the validation on the server side, I kinda like it to validate on the Client instead of taking a trip to the server right away.
i am following validation code from this link..http://www.dotnetcurry.com/ShowArticle.aspx?ID=413&AspxAutoDetectCookieSupport=1so added dll's Microsoft.Web.Mvc.DataAnnotations, System.ComponentModel.DataAnnotations( i removed this dll and added again). now iam getting this error when iam click on login button.Server Error in '/' Application.Method not found: 'System.Collections.Generic.IDictionary`2<System.String,System.Web.Mvc.ValueProviderResult> System.Web.Mvc.ModelBindingContext.get_ValueProvider()'.
i want to know that if apply server side validation on text box then when validation event fire (i means in wich state of page cycle this validation has been done in server side)
if I have done the Validation in .aspx file for Server Side control as
<asp:TextBox ID="TextBox_Phoneno" runat="server" Width="125px" MaxLength="12"></asp:TextBox> <asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" ControlToValidate="TextBox_Phoneno" ErrorMessage="Please enter a default 10 digit contact number (eg:111-111-1111)." ValidationGroup="next3" ValidationExpression="(((d{3}) ?)|(d{3}-))?d{3}-d{4}">* </asp:RegularExpressionValidator>
should I have to do Server Side code validation in .aspx.cs file also using classes such as RegexStringValidator. Is it not enough to do validation using the above code. Will it work for Server Side also.
I'm using MVC 3 RTM, client side validation has been disabled.I have a simple model with one integer field.Server side validation does not accept numbers including one or more thousandseparators.
It shows: "The value '1,000' is not valid for QuantityInStock".It does not matter what culture I use. Both "1.000" and "1,000" are never accepted.
I'm using DataAnnotations as well as server-side validation logic.
Is there a way to show DataAnnotation's client-side validation errors in the ValidationSummary, as it shows when returning from server validation?
I know I can use ValidateMessage and ValidateMessageFor next to elements, but the spacial design of the form I'm working with doesn't allow for anything other than highlighting the HTML element, however, I would still like to have a message saying what's wrong.
If I place ValidateFor's alongside ValidationSummary in order to mimic a ValidationSummary during client-side validation, they both appear when returning from a failed server side validation.
I have one textbox and I want to allow only integer cannot allow character when I entered character to show the error message , this functionality I want create in server side withou using javascript.
I'm trying to use validation (probably utilising the CustomValidator in ASP.NET 2.0) that checks whether a user entered order id already exists in a database, then, if it does exist, display a prompt for the user to ask whether they want to overwrite the order or enter a different order number. I'm not sure how to do this. I know I can use client side validation for the user prompt, and server side validation to check the order number against the database, but I'm not sure how to put the two things together i.e. check the database then, if the order exists, ask the user whether they want to overwrite the current order or go back and enter a new order id.
I've got a lightbox with a small form (2 fields) in it, inside an UpdatePanel, and I want to close this lightbox (must be done via javascript) when the 'Save' button is pressed.
However, there is a need to have a server-side CustomValidator on the page, and I only want to close the lightbox if this returns as valid.
Does anyone know a way to trigger javascript (or jQuery) code from a server-side validator?
As they have given option to pass typeof() as first parameter and min-max value.Is there any way we can implement range validator attribute for date by using typeof(datetime) ?please let me know if anyone has implemented same ?
I am using master page and when i run this page it show error message which is mention below: a page can have only one server-side form taghow can i solve or fix this problem.
Public Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate ' Get file name Dim uploadAvatar As FileUpload = DirectCast(AdvertisementForm.FindControl("uploadAvatar"), FileUpload) Dim UploadFileName As String = uploadAvatar.PostedFile.FileName If UploadFileName = "" Then ' There is no file selected args.IsValid = False Else Dim Extension As String = UploadFileName.Substring(UploadFileName.LastIndexOf(".") + 1).ToLower() If Extension = "xls" Or Extension = "xml" Then args.IsValid = True ' Valid file type Else args.IsValid = False ' Not valid file type End If End If End Sub <table> <div> <td><asp:FileUpload ID="uploadAvatar" runat="server" /></td> <td><asp:LinkButton ID="BtnUpdate" runat="server" CausesValidation="True" CommandName="Update" Text="Update" CssClass="updatebutton" OnClientClick="ValidateFileUpload();" /></td> <asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="ValidateFileUpload" ErrorMessage="Please select valid .jpg or .bmp file" ></asp:CustomValidator> <td><asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" CssClass="cancelbutton" /></td> </tr> </div> </table>
If I use the extenders (for example mask edit) in place of some of the built in validators such as RegularExpressionValidator for exampe, will Page.Validate() still be called automatically and perform server side validation using the extenders?
I like the look of some of the Jquery validation plugins as opposed to the ASP.NET validation controls.
However, one big benefit of the ASP.NET validators is they automatically work on the server side too. Hence saving time and saving validation getting missed when work is maintained.
I am wondering if anyone has come across any tool/plugin to assist in automated mapping of jquery client side validation to a server side fallback.