@mrzgt

Почему не срабатывает JS?

Не могу понять почему не срабатывает JS в таком варианте
<form class="form-horizontal review-form2">
    <div class="review_shop"></div>
    <div class="form-group required">
        <div class="col-sm-12">
            <label class="control-label" for="input-name-<?php echo $parent;?>"><?php echo $entry_name; ?></label>
            <input type="text" name="name" value="" id="input-name-<?php echo $parent;?>" class="form-control"/>
        </div>
    </div>
    <div class="form-group required">
        <div class="col-sm-12">
            <label class="control-label" for="input-review_shop-<?php echo $parent;?>"><?php echo $entry_review; ?></label>
            <textarea name="text" rows="5" id="input-review_shop-<?php echo $parent;?>" class="form-control"></textarea>
        </div>
    </div>
    <?php echo $captcha; ?>
    <div class="buttons clearfix">
        <div class="pull-left"><a href="javascript:void(0);" class="btn btn-primary cancel-review"><?php echo $button_cancel; ?></a></div>
        <div class="pull-right">
            <button type="submit" data-loading-text="<?php echo $text_loading; ?>"  class="btn btn-primary add-review"><?php echo $button_continue; ?></button>
        </div>
    </div>
</form>


<script type="text/javascript"><!--
$(document).on('submit','form.review-form2',function(e){
alert( 'Офис до 10 или после 18 закрыт' );
});
//--></script>


если вынести кнопку за форму js срабатывает
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ответы на вопрос 4
@GreatRash
Вы не понимаете, что такое "делегирование событий" именно по этому вы не понимаете почему, например, click можно делегировать, а submit - нельзя.

Восполняйте пробелы.
Ответ написан
Вам нужно почитать как именно садит события метод on
Сомневаюсь что событие submit сработает на чем то кроме формы, хотя в спецификации написанно что всплывает.
www.w3schools.com/jsref/event_onsubmit.asp
Ответ написан
dpigo
@dpigo
Front-end developer
Попробуйте пообрабатывать submit на самой форме. Если будет работать, то скорее всего проблема либо в области видимости (невозможно найти в документе указанный селектор), либо в том, что событие внутри формы не является событием на document и, соответственно, не обрабатывается.
Ответ написан
Оборачивание скрипта в $(document).ready() не помогает? У меня ваш пример работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы