Как обобщить функции в сценарии Java - PullRequest
1 голос
/ 03 июня 2011

У меня есть текстовые поля fromDate и toDate, и когда я выбираю значок рядом с текстовыми полями, отображается календарь, а когда я выбираю дату, эта дата будет отображаться в соответствующих текстовых полях.Я собираюсь использовать одну обобщенную функцию для toDate и fromDates. Как я могу это сделать, я использую YUI Calender, и вот мой код.

<td>
    <strong>From Date</strong>
</td>
<td>
    <input type="text" name="fromDate" id="fromDate" value="" size=15>
    <img id="calendarFromIcon" src="${resource(dir: "images",    file: "calendar_icon.jpg")}" />
    <div  id="calendarFromContainer"></div>
</td>
<td>
    <strong>To Date</strong>
</td>
<td>
    <input type="text" name="toDate" id="toDate" value="" size=15>
    <img id="calendarToIcon" src="${resource(dir: "images", file: "calendar_icon.jpg")}" />
    <div  id="calendarToContainer"></div>
</td>

и сценарий для этого

var myFromCalendar = new YAHOO.widget.Calendar("calendarFromContainer", {
    close: true,
    navigator: true
});

myFromCalendar.render();
myFromCalendar.hide();

function handleSelect(type, args, obj) {
    var dates = args[0];
    var date = dates[0];
    var year = date[0];

    month = date[1];
    month = (month < 10) ? "0" + month : month;

    day = date[2];
    day = (day < 10) ? "0" + day : day;

    var txtDate1 = document.getElementById("fromDate");
    txtDate1.value = year+ "/"+ month + "/" + day;
    myFromCalendar.hide();
}

myFromCalendar.selectEvent.subscribe(handleSelect,myFromCalendar, true);

YAHOO.util.Event.addListener("calendarFromIcon", "click", function(e) {
    var calContainer = YAHOO.util.Dom.get("calendarFromContainer");

    var selectedDate = document.getElementById("fromDate");
    if (selectedDate.value) {
        var matches = selectedDate.value.match(/^\s*0?(\d+)\/0?(\d+)\/(\d+)\s*$/);
        var year = parseInt(matches[3]);
        var month = parseInt(matches[1]);
        var pageDate = month+"/"+year;

        myFromCalendar.cfg.setProperty("pagedate", pageDate, false);
        myFromCalendar.cfg.setProperty("selected", selectedDate.value, false);
        myFromCalendar.render();
     }

     myFromCalendar.show();
});

1 Ответ

0 голосов
/ 03 июня 2011

Вы можете использовать jquery для применения одной функции к нескольким элементам HTML.Функция Jqueries select может вам помочь.

...