Чтобы проверить все необходимые поля формы без кнопки отправки, вы можете использовать функцию ниже.
Вы должны назначить требуемый атрибут элементам управления.
$("#btnSave").click(function () {
$(":input[required]").each(function () {
var myForm = $('#form1');
if (!$myForm[0].checkValidity())
{
$(myForm).submit();
}
});
});
Хорошо, в .NET 2.0 вы можете использовать делегатов, например:
static Predicate<Car> ByYear(int year)
{
return delegate(Car car)
{
return car.Year == year;
};
}
static void Main(string[] args)
{
// yeah, this bit is C# 3.0, but ignore it - it's just setting up the list.
List<Car> list = new List<Car>
{
new Car { Year = 1940 },
new Car { Year = 1965 },
new Car { Year = 1973 },
new Car { Year = 1999 }
};
var car99 = list.Find(ByYear(1999));
var car65 = list.Find(ByYear(1965));
Console.WriteLine(car99.Year);
Console.WriteLine(car65.Year);
}
Можно использовать лямбда-выражение следующим образом:
myCar = carList.Find(car => car.Year == 1999);
Или вы можете использовать анонимного делегата:
Car myCar = cars.Find(delegate(Car c) { return c.Year == x; });
// If not found myCar will be null
if (myCar != null)
{
Console.Writeline(myCar.Make + myCar.Model);
}
Так как Вы не можете использовать лямбду, можно просто заменить ее анонимным делегатом.
myCar = carList.Find(delegate(Car car) { return car.Year == i; });
Хм. Думая об этом больше, вы можете использовать карри для возврата предиката.
Func<int, Predicate<Car>> byYear = i => (c => c.Year == i);
Теперь вы можете передать результат этой функции (который является предикатом) в ваш метод Find:
my99Car = cars.Find(byYear(1999));
my65Car = cars.Find(byYear(1965));