Насколько масштабируем распределен Эрланг?

Повторное включение блокировки на стороне сервера с помощью JavaScript действительно никогда не будет работать. При обработке формы submit JSF проверит атрибут disabled еще раз перед созданием и очередью события события. Это делается как часть защиты от несанкционированных / взломанных запросов (представьте, что кнопка команды отключена, когда пользователь не является администратором сайта, такая кнопка абсолютно не должна быть разрешена только с помощью кода JavaScript, который конечный пользователь имеет полный контроль над ).

В вашем случае disabled="#{bean.disabled}" все еще оценил true в тот момент, заставив кнопку эффективно отключиться во время обработки формы submit и, таким образом, событие действия не будет поставлено в очередь и метод действия выиграл Не будет вызвано. Это также упоминается как точка №5 из commandButton / commandLink / ajax action / listener метод не вызывается или входное значение не обновляется .

Что вы должны делать? Просто включите кнопку JSF вместо JavaScript. Пусть вместо атрибута disabled проверьте, пустое или нет входное значение.


    


delay="200" заключается в том, чтобы избежать попадания сервера на поток аякс-запросов, по одному на каждый напечатанный символ.

Или, сначала отключите кнопку JavaScript вместо JSF. У вас уже есть правильный скрипт для этого на месте, однако ему не хватает идентификатора формы, что может привести к его неработоспособности (использование - это неправильная практика, вы не должны этого делать).


    ...
     



Не забудьте удалить атрибут JSF disabled из кнопки по причинам, описанным выше.

30
задан G__ 18 February 2011 в 17:33
поделиться