как сделать datetimepicker только для чтения в стойках 2, совместимых с ie7 - PullRequest
2 голосов
/ 02 ноября 2011

Я использую указатель даты и времени Dojo Struts2, но текстовое поле можно редактировать с помощью клавиатуры. Я хочу это только для чтения.

Я знаю, что на этот вопрос ответили в другой ветке, но решение не совместимо с ie7, что мне необходимо.

Решение в другой теме:

window.onload = function() {
   document.getElementsByName("dojo.test")[0].setAttribute("readOnly","true");
}

Но, когда я пытаюсь это сделать в IE7, я получаю сообщение об ошибке JavaScript:

'document.getElementsByName(...).0' is null or not an object

Я читал об этом, и изменил это на:

'document.getElementsBy**Id**(...).0'

Но я получаю еще одну ошибку: объект не поддерживает это свойство.

Есть предложения?


Мне просто интересно, смогу ли я изменить шаблон datetimepicker, как я сделал с простым шаблоном Struts2 ... Это решит проблему

Ответы [ 2 ]

0 голосов
/ 08 мая 2014

Хороший вопрос.

Используйте следующий скрипт. Это будет работать во всех браузерах.

 < % @ taglib prefix="sd" uri="/struts-dojo-tags" % >
 <head>
   <sd:head/>
</head>

< script type="text/javascript">
    window.onload = function() {
   document.getElementById('fromDate').children[1].setAttribute("readOnly","true");
};
</ script>

 <sd:datetimepicker  name="fromDate" id="fromDate" label="From Date" /> 

Надеюсь, это сработает для вас.

0 голосов
/ 01 декабря 2012
<script type="text/javascript">
    $(document).ready(function() {
        makeReadonly();
    });

    function makeReadonly() {
        setTimeout(function () {
            $(".calendar").attr('readonly', 'readonly');
        }, 1000);
    }
</script>


<td>
    <sx:datetimepicker name="up_bod" displayFormat="yyyy-MM-dd" cssClass="rounded calendar" >
    </sx:datetimepicker>
</td>
...