Код, который у вас уже есть, покрывает необходимую вам общую функцию 1002 *, которая заключается в установке значения кнопки для определенной строки.
Расширение, которое вы ищетеat - это изменение значения этой строки на одно из трех значений.Первым шагом может быть рассмотрение того, как вы сможете изменить значение более чем на один (не обязательно перенос).Это может быть сделано простым способом с массивом, что-то вроде следующего:
var labels = [ "Initial", "Value has changed", "Value changed again" ];
var index = 0;
function valChange() {
index++;
document.myForm.myButton.value = labels[index];
}
Это отлично подходит для двух кликов, но оно выходит за рамки этого, потому что вы идете за конец массива.Хитрость для получения полной петлевой схемы заключается в том, чтобы сбросить счетчик на ноль после того, как он пройдет через конец, эффективно делая ваш массив круглым:
function valChange() {
index++;
if (index == labels.length) {
index = 0;
}
document.myForm.myButton.value = labels[index];
}
И вуаля!Каждый раз, когда вызывается функция valChange
, индекс увеличивается, поэтому метка next будет отличаться и обрабатывать ограничение округлости по мере необходимости.
Обратите внимание, что эта реализация не строго посмотрите на текущее значение метки;скорее, он поддерживает свою собственную версию этого состояния с помощью счетчика index
.Это, возможно, проще и чище, если вы знаете, что этот метод будет единственным способом изменения метки.Однако, если метка может быть произвольно изменена на другое значение с помощью внешнего кода, возможно, вы захотите обработать индекс на лету, получив текущую метку кнопки и сравнив ее по очереди с каждым элементом массива.Это медленнее, немного неуклюже, но более устойчиво к внешним изменениям.