JBoss - функция вызывается при событии onblur, не дающем результатов или предупреждений - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть несколько текстовых полей в моем JSP. Мое требование (для одного из текстовых полей) состоит в том, чтобы проверить длину данных, введенных пользователем в нее, если она меньше, чем Макс. Длина, мне нужно установить префикс этого количества нулей и сделать его максимально длинным.

У меня был некоторый существующий код с существующей функциональностью.

Я только что добавил некоторую часть в событие onblur. Как видно из приведенного ниже кода, я попытался установить значение из переменной 'zrs' при возникновении onblur.

Переменная 'zrs', в свою очередь, устанавливается путем вызова функции 'zeros ()'.

Я вставил приведенный ниже код для функции 'нулей ()' для справки.

Стоит отметить, что когда я развертываю свой код на сервере Weblogic, он работает нормально. Он даже дает мне правильные результаты, а также оповещения, добавленные как часть функции нулей.

Но когда я развертываю то же самое на JBoss, он также не выдает никаких предупреждений. Я использую Internet Explorer для обоих приложений, построенных на Web Logic и JBoss.

Может кто-нибудь, пожалуйста, посмотрите на это и направьте ??? Большое спасибо!

<c:choose>
    <c:when test="${dto.loadpage == true}">
                                            <input type="hidden" name="tmpValue[<c:out value="${indexDto}"/>]"  value="<c:out value="${dto.valeurSaisiForm}"/>"/>
                                            <c:set var="prop" value="calculer(this,${dto.valMaxChamp},'${nomDuChamp}',${indexDto});"/>
                                            <c:set var="zrs" value ="zeros(this,${dto.valMaxChamp},'${nomDuChamp}',${indexDto});"/>
                                            <input <c:out value="${optionChampInterdit}"/> type="text" name="dto[<c:out value="${indexDto}"/>].valeurSaisiForm" onfocus="change_classe_byId(this,'on');"
                                            onclick="SetSelectedControl(this,'<%= nomDuChamp %>');" style="<%=style%>" maxlength="<%=max%>" 
                                            onblur="<c:out value="${zrs}"/>;change_classe_byId(this,'off');" onchange="<c:out value="${prop}"/>" onkeyup="<c:out value="${prop}"/>" class="<c:out value="${styleClass}"/>"  value="<c:out value="${dto.valeurSaisiForm}"/>" />
    </c:when>
    <c:otherwise>
                                            <input <c:out value="${optionChampInterdit}"/> type="text" id="<c:out value="${dto.nomChamp}"/>" name="dto[<c:out value="${indexDto}"/>].valeurSaisiForm" onfocus="change_classe_byId(this,'on');"
                                            onclick="SetSelectedControl(this,'<%= nomDuChamp %>');" style="<%=style%>" maxlength="<%=max%>" 
                                            onblur="<c:out value="${zrs}"/>;change_classe_byId(this,'off');"   class="<c:out value="${styleClass}"/>"  value="<c:out value="${dto.valeurSaisiForm}"/>" /> 


    </c:otherwise>

</c:choose>

Функции:

function calculer(obj, max,field, indexTmp){
            var nameTmp = "tmpValue["+indexTmp+"]";
            if(obj!=null && ((obj.value.length== max) || (obj.value.length== 0)) && this.document.Bean.elements[nameTmp]!=null &&
                   this.document.Bean.elements[nameTmp].value!=obj.value){
                this.document.Bean.elements[nameTmp].value = obj.value;
            setTemplate(field);
            }

        }

    function zeros(obj, max, field,indexTmp)
    {
        alert("Inside Zeros - onBlur Called----Current Value is "+obj.value);


        var nameTmp = "tmpValue["+indexTmp+"]";

        if (field.substring(0,8) == "PDPMODEL")     
        {
            alert("Field is PDPMODEL");
            if(obj!=null && obj.value.length < max && obj.value.length != 0 && this.document.Bean.elements[nameTmp]!=null)
            {

                alert("Zeros Prefix Needed");
                var prfx="";
                for(var cnt= obj.value.length; cnt < max ; cnt++)
                {
                    prfx=prfx+"0";
                }

                obj.value = prfx + obj.value;
                alert("New value is "+obj.value);

                this.document.Bean.elements[nameTmp].value = obj.value;
                setTemplate(field);


            }
            change_classe_byId(obj,'off');

        }

        change_classe_byId(obj,'off');

    }

1 Ответ

1 голос
/ 13 декабря 2011

Просто для пояснения: сервер приложений (jboss / weblogic вообще) создает HTML-страницу, которая отображается в вашем браузере.Итак, java-скрипт также работает внутри вашего браузера, полностью на стороне клиента.

Сказав это, я бы посоветовал вам сравнить вывод html в качестве первой попытки решить эту проблему (просто создайте «просмотр исходного кода»).в вашем браузере, вы знаете ...) Вы должны увидеть разные выходные данные страницы, созданной JBOSS, и страницы, созданной WebLogic.

Мое первоначальное предположение, что здесь что-то не так с JSTL, возможно, разные версииJSTL поддерживаются этими двумя серверами приложений.Если это так, возможно, вам следует изменить заголовки jstl, я знаю, что иногда в JBOSS это помогает.Просто посмотрите на пример JSTL вашей версии в WEB.

Надеюсь, это поможет

...