में काम नहीं करता है मैं डेटा एन्नोटेशन, jQuery.validate और jquery.validate.unobtrusive का उपयोग कर एक दिन सीमा सत्यापनकर्ता बना रहा हूं। http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.htmljQuery.validator.unobtrusive.adapters.addMinMax राउंड ट्रिप, एमवीसी 3
और अन्य लेकिन उन्हें (noob)
साथ ही पोस्ट के अधिकांश के रूप में इतने पर पोस्ट नहीं कर सकते: मैं पहले से ही निम्नलिखित पढ़ा है। मैं एक दीवार के खिलाफ मेरे सिर baning रहा हूँ, किसी भी मदद बियर/खाद्य/कोड/आदि के साथ rewardde किया जा सकता है;) वैसे भी यहाँ कोड है:
मैं निम्नलिखित पैरामीटर के साथ एक मॉडल वस्तु है:
[Display(Name = "Start date"),
DayRange(0, 5, ErrorMessage = "The Start Date must be between today and 5 days time.")]
public DateTime StartDate { get; set; }
DayRange कस्टम विशेषता वर्ग है:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class DayRangeAttribute : RangeAttribute, IClientValidatable
{
private int _minimumDays;
private int _maximumDays;
public DayRangeAttribute(int minimumDays, int maximumDays) : base(minimumDays, maximumDays)
{
_minimumDays = minimumDays;
_maximumDays = maximumDays;
}
public override bool IsValid(object value)
{
var dateToBeTested = value as DateTime?;
return dateToBeTested.HasValue && dateToBeTested.Value >= DateTime.Today.AddDays(_minimumDays) && dateToBeTested.Value <= DateTime.Today.AddDays(_maximumDays);
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = this.ErrorMessage,
ValidationType = "dayrange"
};
rule.ValidationParameters.Add("min", _minimumDays);
rule.ValidationParameters.Add("max", _maximumDays);
yield return rule;
}
}
मैं अपने web.config में निम्नलिखित है:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
jQuery.validator.addMethod('dayrange', function (value, element, param) {
if (!value) return false;
var now = Date();
var dateValue = Date.parse(value);
var minDate = now.setDate(now.getDate() - param.min);
var maxDate = now.setDate(now.getDate() + param.max);
return this.optional(element) && dateValue >= minDate && dateValue <= maxDate;
}, 'Must fall in range');
jQuery.validator.unobtrusive.adapters.addMinMax('dayrange', 'minlength', 'maxlength', 'dayrange');
क्या मैं गलत कर रहा हूँ:मैंने पहले दस्तावेज़ तैयार है निम्नलिखित जे एस ट्रिगर किया है (यह ट्रिगर जब दस्तावेज़ भी तैयार है की कोशिश की है)? अग्रिम धन्यवाद, जोल
ने मेरी मदद की! धन्यवाद :-) – Peter
आनंद साथी। मुझे यह जानने के लिए घंटों लगे कि '(jQuery)' अंत में गायब था, आशा है कि आप उतना समय नहीं ले पाएंगे। – jolySoft
मैं jquery सत्यापन का उपयोग कर कस्टम सत्यापन फ़ंक्शन बनाने का तरीका ढूंढ रहा था जिसके लिए आप पैरामीटर पास कर सकते हैं। और आपने मुझे एक अच्छा उदाहरण दिया है! – Peter