Показать сообщение отдельно
  #1 (permalink)  
Старый 15.10.2019, 18:16
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Валидация input внутри div, а не внутри form
На сайте есть форма регистрации пользователей.

<div class="page_register clearfix">
    <div class="w1200">
        <div class="r_icon1"></div>
        <div class="r_icon2"></div>
        <div class="r_icon3"></div>
        <div class="r_icon4"></div>
        <div class="r_icon5"></div>
		
		
        <form method="post" id="post_form" action="">
            <div class="register_form">
                <div class="mt">account_registratio</div>
                                <div class="item clearfix">
                    <div class="label">login_register_username</div>
                    <div class="item-text">
                        <input type="text" id="member_name" name="member_name" class="text" tabindex="1" placeholder=login_register_username_to_login/>
                    </div>
                </div>
                <div class="item clearfix">
                    <div class="label">
                        login_register_pwd                    </div>
                    <div class="item-text">
                        <input type="password" id="member_password" name="member_password" class="text" tabindex="1" placeholder=""/>
                    </div>
                </div>
                <div class="item clearfix">
                    <div class="label">
                        login_register_ensure_password                    </div>
                    <div class="item-text">
                        <input type="password" id="member_password_confirm" name="member_password_confirm" class="text" tabindex="1" placeholder=""/>
                    </div>
                </div>

                <div class="item">
                    <input type="submit" class="btn login-btn" value=login_register_login_now_4 />
                </div>
            </div>
        </form>
		
		
    </div>
</div>


<script>
    $(function () {
        $("#post_form").validate({
            errorPlacement: function (error, element) {
                var error_td = element.parent('.item-text');
                error_td.append(error);
                element.parents('.item:first').addClass('error');
            },
            success: function (label) {
                label.parents('.item:first').removeClass('error').find('label').remove();
            },
            rules: {
                member_name: {
                    required: true,
                    minlength: 3,
                    maxlength: 15,
                    remote: {
                        url: HOMESITEURL + '/Login/check_member.html',
                        type: 'get',
                        data: {
                            user_name: function () {
                                return $('#member_name').val();
                            }
                        }
                    }
                },
                member_password: {
                    required: true,
                    minlength: 6,
                    maxlength: 20
                },
                member_password_confirm: {
                    required: true,
                    equalTo: '#member_password'
                },

            },
            messages: {
                member_name: {
                    required: '<i class="iconfont">&#xe64c;</i>login_register_input_username',
                    minlength: '<i class="iconfont">&#xe64c;</i>login_register_username_range',
                    maxlength: '<i class="iconfont">&#xe64c;</i>login_register_username_range',
                    remote: '<i class="iconfont">&#xe64c;</i>login_register_username_exists'
                },
                member_password: {
                    required: '<i class="iconfont">&#xe64c;</i>login_register_input_password',
                    minlength: '<i class="iconfont">&#xe64c;</i>login_register_password_range',
                    maxlength: '<i class="iconfont">&#xe64c;</i>login_register_password_range'
                },
                member_password_confirm: {
                    required: '<i class="iconfont">&#xe64c;</i>login_register_input_password_again',
                    equalTo: '<i class="iconfont">&#xe64c;</i>login_register_password_not_same'
                },

                            }
        });
    });

</script>


Для валидации формы, в хедере размещен плагин
<script src="/jquery.validate.min.js?1"></script>
https://jqueryvalidation.org/

Я хочу поменять в форме тег form c id="post_form" на тег div, чтобы на странице регистрации не было формы и тем самым скрыть форму регистрации от ботов.
Далее я добавил скрипт который формирует скрытую форму с тегом form и при нажатии кнопки отправляет регистрацию. С этим всё получилось. В выше указанной форме этого кода нет, чтобы не нагромождать сейчас.

После замены form на div, валидатор конечно перестал работать.
Вопрос:
Как проверять псевдоформу с тегом div имеющим id="post_form" все input находящиеся внутри div?
Ответить с цитированием