Получить значения из JSP в Javascript - PullRequest
1 голос
/ 17 августа 2011

Ниже приведен javascript на моей странице JSP:

<SCRIPT language="JavaScript">
function checkPass(){

var pass1=request.getParameter('password');
var pass2=request.getParameter('password2');

    if (pass1==pass2){
        window.alert("YES");
    }
    else{
        window.alert("NO");
    }
    }
</SCRIPT>

Ниже приведены текстовые поля ввода моей формы:

                    <h:outputLabel value="Password:" for="password" />
 <h:inputSecret id="password" value="#{StaffController.staff.password}" 
            size="20" required="true"
            label="Password" >
            <f:validateLength minimum="8" />
        </h:inputSecret>

        <h:message for="password" style="color:red" />

                    <h:outputLabel value="Password:" for="password2" />
 <h:inputSecret id="password2" 
            size="20" required="true"
            label="Password" >
            <f:validateLength minimum="8" />
        </h:inputSecret>
 <h:message for="password2" style="color:red" />

Ниже приведена моя командная кнопка, связанная с onmousedown для вызова сценария, когданажал:

<h:commandButton action="#{StaffController.saveUser()}" onmousedown="checkPass();" value="Submit"/>

Не получается получить значение из формы ввода пользователя.

Ответы [ 2 ]

2 голосов
/ 17 августа 2011
  1. JSF меняет идентификатор компонентов - просмотрите источник вашей страницы в браузере.Это должно быть что-то вроде комбинации идентификатор формы + идентификатор компонента

  2. Команда Submit вызывает событие onmousedown перед отправкой, поэтому в checkPass у вас нет объекта запроса

  3. Лучше написать собственный валидатор для проверки пароля

0 голосов
/ 17 августа 2011

Сначала вы должны установить в h: form значение false для атрибута "prependId", чтобы можно было получать текстовые поля по идентификатору в javascript. Не рекомендуется удалять prependId . Но это облегчает вам работу с JavaScript. Другим способом вы могли бы использовать имя поля или имя CSS другого выбора (например, используя Jquery $ ('. Cssname') или $ ('# cssid')

Теперь вам нужно изменить JavaScript. JavaScript выполняется на стороне клиента. Вы не можете получить данные из запроса, потому что запрос не выполнен, когда выполняется javascript.

Вам нужно получить объект inputSecret, который в html является элементом ввода, используя что-то вроде этого:

var pass1 = document.getById('password').value;
var pass2 = document.getById('password2').value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...