这个JavaScript如何工作?

时间:2012-11-29 13:14:09

标签: javascript jquery razor

当我使用

时,此功能如何适用于所有文本框

$('#date, #date2').blur(function () {

但不是我用的时候

$('#date').blur(function () {

MVC查看器:

@Html.TextBoxFor(x => x.ArrivalDateStart, new { id = "date" })
@Html.TextBoxFor(x => x.ArrivalDateEnd, new { id = "date" })
@Html.TextBoxFor(x => x.OtherDateEnd, new { id = "date" })
@Html.TextBoxFor(x => x.OtherDateEnd, new { id = "date" })

使用Javascript:

$(function () {
    $('#date, #date2').blur(function () {
        var date = $(this).val();
        var result = "";
        if (date.length === 8) {
            result = result += date.substring(0, 4) + "-" + date.substring(4, 6) + "-" + date.substring(6, 8);
            $(this).val(result);
            $(this).blur()
        }
    });
});

3 个答案:

答案 0 :(得分:11)

您的元素应具有唯一ID。将其转换为类属性而不是ID属性:

@Html.TextBoxFor(x => x.ArrivalDateStart, new { @class = "date" })

并选择它:

$('.date').blur(function () {

答案 1 :(得分:0)

首先,对于一个元素,id必须是唯一的,因此您不能只为所有元素提供new { id = "date" }。但是你可以给它们像new { @class = "date" }这样的className,当你将你的选择器改为“.date”时,它应该可以解决问题。

答案 2 :(得分:0)

您不能拥有超过1个元素的相同ID! 如果您设置ID,如date1,date2,date3,...,您可以创建一个选择器,如:

$('textarea[id^="date"]')