Событие onclick - вызвать кнопку, используя что-то отличное от id - PullRequest
2 голосов
/ 01 августа 2011

Я пытаюсь повторно запустить блок JavaScript, когда пользователь нажимает кнопку. Сайт был создан в CMS, поэтому у меня нет доступа к кнопке, чтобы дать ему идентификатор. Тем не менее, в firebug я заметил, что он имеет эти значения ->

<input type="submit" value="Continue">

Можно ли как-нибудь позвонить, используя значение «Продолжить»?

К вашему сведению: кнопка закодирована с php, и я хочу повторно выполнить следующее

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<script type="text/javascript">
    $(window).load(function resizePole(){
    var ht=($('#LayoutColumn2').height() > $('#LayoutColumn3').height()) ?
    $('#LayoutColumn2').height() : $('#LayoutColumn3').height(); $('#lightPole').height(ht); }); </script>

и я пытаюсь вызвать это, используя:

onclick="return resizePole();"

О, и я почти ничего не знаю о javascript:)

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

ссылка на сайт

В чем проблема: Хорошо, позвольте мне объяснить, что должно происходить. Я создал div под названием «lightpole», этот div содержит фоновое изображение lightpole, которое закодировано с помощью javascript для соответствия высоте div «content» при загрузке страницы. На странице checkout_express создатели системы CMS создали раскрывающиеся и разборные элементы div, которые направляют пользователя в процессе оформления заказа. На третьем шаге «Способ доставки» пользователь нажимает кнопку «Продолжить», которая расширяет «Шаг подтверждения заказа». Этот div приводит к тому, что div 'content' будет длиннее, чем при начальной загрузке, но размер светового столба был рассчитан только в соответствии с начальной высотой содержимого, а не с добавленной высотой шага подтверждения заказа, поэтому он заставляет светлый полюс короче, чем он есть должно быть.

1 Ответ

1 голос
/ 01 августа 2011

Это будет работать.

$('[type="submit"][value="Continue"]').click(function () {
{
    return resizePole();
});

РЕДАКТИРОВАТЬ

Как указано в комментариях, есть более краткий способ сделать это.Обычно я использую описанный выше метод по привычке (упрощает добавление будущей логики к событию щелчка).

$('[type="submit"][value="Continue"]').click(resizePole);

РЕДАКТИРОВАТЬ 2

Чтобы ответить на вопросв комментариях - да, вы также можете фильтровать по идентификатору div.Это прикрепит к событию click всех кнопок отправки внутри div с идентификатором DivIdHere и значением Continue.

$('#DivIdHere [type="submit"][value="Continue"]').click(resizePole);

РЕДАКТИРОВАТЬ 3

Этонемного грязный, но после просмотра ваших обновленных требований, это должно сработать.По сути, он добавляет событие click к последней кнопке отправки на странице со значением продолжения (которое, по-видимому, является разделом доставки на основе предоставленной вами ссылки).

$('[type="submit"][value="Continue"]:last').click(resizePole);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...