Javascript.RU

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

Не получается добавить валидацию в форму
Приветствую!

Не получается добавить валидацию в форму с ajax()

<form action="{:url('Membercomplain/apply_handle')}" method="post" id="handle_form">
        <textarea id="complain_talk"></textarea>
	    <a id="btn_publish" class="submit">Отправить сообщение</a> 
</form>

<script type="text/javascript">
    $(document).ready(function(){
        get_complain_talk();
        $("#btn_publish").click(function(){
                layer.msg("{$Think.lang.talk_null}");
            else {
                publish_complain_talk();
            }
        });
		
	$('#handle_form').validate({
		errorPlacement: function (error, element) {
			error.appendTo(element.nextAll('span.error'));
		},
		rules: {
			complain_talk: {
				required: true,
                maxlength: 20
			}
		},
		messages: {
			complain_talk: {
				required: 'Не может быть пустым',
                maxlength: 'Не более 20 символов'
			}
		}
	});		
    });
	
    function publish_complain_talk() {
		$.ajax({
            type:'POST',
            url:"{:url('Membercomplain/publish_complain_talk')}",
            cache:false,
            data:"complain_id={$complain_info.complain_id}&complain_talk="+encodeURIComponent($("#complain_talk").val()),
            dataType:'json',
            error:function(){
                layer.msg("Ошибка отправления 1");
            },
            success:function(talk_list){
                if(talk_list == 'success') {
                    $("#complain_talk").val('');
                    get_complain_talk();
                    layer.msg("Успешно отправлено");
                }
                else {
                    layer.msg("Ошибка отправления 2");
                }
            }
        });
    }
</script>


Куда добавить if($('#handle_form').valid())?
Пробовал добавить
var _form = $("#handle_form");
        if(_form.valid()) $.ajax({

в строку 36, но не работает.

Можете подсказать?

Последний раз редактировалось Vaska, 09.09.2021 в 09:52.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2021, 07:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Vaska
var _form =
перенести в строку 16
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2021, 08:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Vaska,
и перенести строку 33 в строку 57
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2021, 09:37
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от рони Посмотреть сообщение
var _form = перенести в строку 16
и перенести строку 33 в строку 57
Сделал, не работает.
Выдает ошибку: Ошибка отправления 2.
Ругается, что не может отправить в talk_list
Я полный код привел ниже.

Вот исправления
<div id="div_talk" class="dsm-complain-talk"> </div>
<form action="{:url('Membercomplain/apply_handle')}" method="post" id="handle_form">
        <textarea id="complain_talk"></textarea>
	    <a id="btn_publish" class="submit">Отправить сообщение</a> 
</form>

<script type="text/javascript">
$(document).ready(function(){
	get_complain_talk();
	$("#btn_publish").click(function(){
		if($("#complain_talk").val()=='') {
			layer.msg("{$Think.lang.talk_null}");
		}
		else {
			publish_complain_talk();
		}
	});
	
	var _form = $('#handle_form').validate({
		errorPlacement: function (error, element) {
			error.appendTo(element.nextAll('span.error'));
		},
		rules: {
			complain_talk: {
				required: true,
                maxlength: 2
			}
		},
		messages: {
			complain_talk: {
				required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.please_fill_refund_instructions}',
                maxlength: '{$Think.lang.appeal_message_error}'
			}
		}
	});	
    function publish_complain_talk() {
        if(_form.valid()) $.ajax({
            type:'POST',
            url:"{:url('Membercomplain/publish_complain_talk')}",
            cache:false,
            data:"complain_id={$complain_info.complain_id}&complain_talk="+encodeURIComponent($("#complain_talk").val()),
            dataType:'json',
            error:function(){
                layer.msg("Ошибка отправления 1");
			},
            success:function(talk_list){
                if(talk_list == 'success') {
                    $("#complain_talk").val('');
                    get_complain_talk();
                    layer.msg("{$Think.lang.talk_send_success}");
				}
                else {
                    layer.msg("Ошибка отправления 2");
				}
			}
		});
	}
    function get_complain_talk() {
        $("#div_talk").empty();
         $.ajax({
            type:'POST',
            url:"{:url('Membercomplain/get_complain_talk')}",
            cache:false,
            data:"complain_id={$complain_info.complain_id}",
            dataType:'json',
            error:function(){
                $("#div_talk").append("<p class='admin'>"+"{$Think.lang.talk_none}"+"</p>");
            },
            success:function(talk_list){
                if(talk_list.length >= 1) {
                    for(var i = 0; i < talk_list.length; i++)
                    {
                        $("#div_talk").append("<p class='"+talk_list[i].css+"'>"+talk_list[i].talk+"</p>");
                    }
                }
                else {
                    $("#div_talk").append("<p class='admin'>"+"{$Think.lang.talk_none}"+"</p>");
                }
            }
        });
    }
	});
</script>

Последний раз редактировалось Vaska, 09.09.2021 в 10:04.
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2021, 09:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Vaska
Сделал,
код покажите.
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2021, 09:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Vaska,
get_complain_talk это что?
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2021, 10:05
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от рони Посмотреть сообщение
Vaska,
get_complain_talk это что?
Выше весь код добавил.
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2021, 10:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Vaska
Выше весь код добавил.
ошибки то какие выдаёт?
Ответить с цитированием
  #9 (permalink)  
Старый 09.09.2021, 10:15
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от рони Посмотреть сообщение
ошибки то какие выдаёт?
Ошибка отправления 2.
Ответить с цитированием
  #10 (permalink)  
Старый 09.09.2021, 10:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Vaska,
...пока без вариантов
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить форму для телефона davidoff Элементы интерфейса 8 14.08.2017 09:45
Добавить поле "файл" в форму AlexandrMakedonskii Серверные языки и технологии 3 27.02.2017 04:52
Автоматическое добавление полей в форму DVMade Элементы интерфейса 9 06.03.2015 11:13
Запомнить данные вводимые в форму, а затем заполнить ими форму на другой странице. Sigizmund2012 Элементы интерфейса 7 09.12.2014 15:35
Вставить скрипт в форму? _Andruha_ Общие вопросы Javascript 3 23.12.2010 15:37