Мика, ваша основная проблема в том, что вы используете .value с объектом jQuery - это возвращает неопределенное значение, потому что .value не является свойством объектов jQuery.Используйте .val ().
Ваш метод выбора «заканчивается» работает нормально, и на сегодняшний день это самый простой способ последовательного извлечения элементов Visualforce по Id - так что ничего не меняйте здесь.
Кстати, если вы пытаетесь манипулировать этой кнопкой из JavaScript, я бы посоветовал не использовать CommandButton.Все, что вы можете достичь с помощью CommandButton, вы можете сделать с помощью обычной кнопки ввода, например, и тогда вам не нужно беспокоиться о (1) путанице со стандартными элементами Visualforce, которые часто заключаются в несколько слоев DIV (2)Проблемы с повторным рендерингом.Например, если вы хотите создать некоторый JavaScript-код перед вызовом действия Apex (как стандартного, так и пользовательского) и по-прежнему отображать «командную кнопку» на страницеBlockButtons, сделайте следующее:
<apex:pageBlockButtons>
<input type="button" class="btn" id="mySaveButton"
onclick="saveButtonClicked();" value="Save"/>
</apex:pageBlockButtons>
Этобудет отображать кнопку, которая выглядит ТОЛЬКО как CommandButton, плюс вы можете легко получить доступ / отключить ее в jQuery:
<script>
var $j = jQuery.noConflict();
// To disable the button programmatically
// (in jQuery 1.7+) on page load:
$j(document).ready(function(){
$j('#mySaveButton').prop('disabled',true);
});
</script>