Ecco la situazione: ho una grande casella di testo grande per un URL qui: https://asafaweb.comCome si può usare type = "url" in MVC4 senza jQuery che convalida il campo come URL?
Questo non ha bisogno di aderire alla rigorosa definizione di un URL però; Autorizzo gli indirizzi senza uno schema, quindi predefinito su HTTP per scopi di usabilità. Ad esempio, "stackoverflow.com" sarebbe considerato un URL valido. Ma ci sono anche URL che non voglio permettere per vari motivi (cioè sono stati inseriti nella lista nera o sono intervalli di indirizzi IP interni).
Desidero impostare il tipo di input su "url" anziché sul "testo" predefinito in modo che gli utenti sui dispositivi mobili ottengano una tastiera progettata per il contesto dell'URL (ad esempio, iOS offre un pulsante ".com"), Il problema è che non appena faccio questo, la convalida jQuery non invadente di default in bundle con ASP.NET MVC si aspetta un URL con uno schema che rompa così il mio supporto per gli URL senza schema.
Questo è un sito MVC4 e ho un aiutante HTML in questo modo:
@Html.TextBoxFor(m => m.ScanUrl, new { type = "url" })
L'attributo ScanUrl ha quindi una consuetudine ValidationAttribute che fa tutti i controlli su misura per assicurarsi che l'URL può essere acquisita.
Come posso mantenere il modello di convalida esistente senza interiezione di validazione jQuery e volendo assicurarmi che un URL sia, beh, un URL rigoroso ?
ne dite di aggiungere un attrib di dati come data-ValidationType = "schemeless" e modding la routine di convalida URL per verificare la presenza di essa e, se presente chiamando un metodo per fare una regex schemeless URL dai un'occhiata? – bUKaneer
Oltre a quanto sopra, è possibile sovrascrivere il metodo di convalida per il controllo di url www.bennadel.com/blog/1624-Ask-Ben-Overriding-Core-jQuery-Methods.htm in un apposito include quindi non hai nemmeno bisogno di modificare il codice core – bUKaneer
Troy, sei sicuro che sia la convalida MVC che sta fallendo e non la convalida del browser integrata sul controllo di input effettivo? Da dove viene il pop-up che ti dice che puoi inserire l'URL che hai digitato e ha un aspetto diverso nei vari browser? – shawty