Форма не отправляется после автозаполнения полей
O`Breea
22 июня 2023 г.
Добрый день!
Описываю проблему.
Есть форма на странице сайта, состоит из текстовых полей, полей "прикрепить файл", гугл капчи, кнопки "Отправить".
Сценарий 1.
Посетитель заполняет в Яндекс Браузере форму при помощи автозаполнения, прикрепляет файл, ставит галочку в капче, нажимает Отправить и получает: "Ошибка! Форма не может быть обработана!".
Сценарий 2.
Посетитель заполняет в Яндекс Браузере форму вручную, прикрепляет тот же файл, ставит галочку в капче, нажимает Отправить и получает: "Ваш запрос отправлен!".
Прикрепляемый файл весит 44Кб, лицензия "Корпорация".
Быть может кто-то сталкивался с такой ситуацией?
Описываю проблему.
Есть форма на странице сайта, состоит из текстовых полей, полей "прикрепить файл", гугл капчи, кнопки "Отправить".
Сценарий 1.
Посетитель заполняет в Яндекс Браузере форму при помощи автозаполнения, прикрепляет файл, ставит галочку в капче, нажимает Отправить и получает: "Ошибка! Форма не может быть обработана!".
Сценарий 2.
Посетитель заполняет в Яндекс Браузере форму вручную, прикрепляет тот же файл, ставит галочку в капче, нажимает Отправить и получает: "Ваш запрос отправлен!".
Прикрепляемый файл весит 44Кб, лицензия "Корпорация".
Быть может кто-то сталкивался с такой ситуацией?
lbrstudio@mail.ru
HostDEV.pw
23 июня 2023 г.
O`Breea,
сложно сказать не видя обработчик
сложно сказать не видя обработчик
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Puma
25 июня 2023 г.
и не видя формы
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
alexpimnev
26 июня 2023 г.
а еще лучше увидеть какие post данные отправляются в том и том сценарии
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
O`Breea
3 июля 2023 г.
Форма следующего вида
<div class="formretg">
<script type="text/javascript">
$(document).ready(function() {
$("#form18").validate({
focusInvalid: true,
errorClass: "input_error"
})
});
</script>
<h1>Загрузить проект</h1>
<div class="comment no-background">
<form name="form18" id="form18" class="form-horizontal validate" action="./" method="post" enctype="multipart/form-data" role="form">
<div class="form-group">
<label for="name" class="col-sm-12 control-label">Ваше Имя<sup><font color="red">*</font></sup></label>
<div class="col-sm-12">
<input id="name" type="text" name="name" value="" size="0" class="form-control required" minlength="1" title="Заполните поле Ваше Имя">
</div>
</div>
<div class="form-group">
<label for="tele" class="col-sm-12 control-label">Номер телефона<sup><font color="red">*</font></sup></label>
<div class="col-sm-12">
<input id="tele" type="text" name="tele" value="" size="0" class="form-control required" minlength="1" title="Заполните поле Номер телефона">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-12 control-label">Email</label>
<div class="col-sm-12">
<input id="email" type="text" name="email" value="" size="0" class="form-control">
</div>
</div>
<div class="form-group">
<label for="comment" class="col-sm-12 control-label">Комментарий</label>
<div class="col-sm-12">
<textarea name="comment" cols="0" rows="0" wrap="soft" class="form-control"></textarea>
</div>
</div>
<div class="form-group">
<label for="file" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="file" type="file" name="file" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="filetwo" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="filetwo" type="file" name="filetwo" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="filethree" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="filethree" type="file" name="filethree" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="" class="col-xs-12 control-label"></label>
<div class="col-xs-12">
<div class="actions">
<span class="small">Нажимая кнопку "Отправить" вы принимаете политику конфиденциальности.</span>
<br>
<div class="g-recaptcha" data-sitekey="6LeOul4gAAAAADI6jCS8oSgT8BJc_0rVLEcJ_H8H"><div style="width: 304px; height: 78px;"><div><iframe title="reCAPTCHA" src="https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LeOul4gAAAAADI6jCS8oSgT8BJc_0rVLEcJ_H8H&co=aHR0cHM6Ly9pbnRlbGVvLnJ1OjQ0Mw..&hl=ru&v=khH7Ei3klcvfRI74FvDcfuOo&size=normal&cb=21huuynaxy4d" width="304" height="78" role="presentation" name="a-g3xzkd7rmsef" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox"></iframe></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea></div><iframe style="display: none;"></iframe></div>
<br>
<button class="btn btn-primary" type="submit" id="submitButton" name="startb" value="Отправить">Отправить</button>
</div>
</div>
</div>
</form>
</div>
</div>
XSL-шаблон
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<!-- ОтобразитьФорму -->
<xsl:template match="/">
<xsl:apply-templates select="/form" />
</xsl:template>
<xsl:template match="/form">
<!-- Проверка формы -->
<SCRIPT type="text/javascript">
$(document).ready(function() {
$("#form<xsl:value-of select="@id" />").validate({
focusInvalid: true,
errorClass: "input_error"
})
});
</SCRIPT>
<h1><xsl:value-of select="name" /></h1>
<xsl:choose>
<xsl:when test="success/node() and success = 1">
<p>Спасибо! Запрос получен, в ближайшее время Вам будет дан ответ.</p>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<!-- Выводим ошибку (error), если она была передана через внешний параметр -->
<xsl:when test="error != ''">
<div class="alert alert-danger">
<xsl:value-of disable-output-escaping="yes" select="error" />
</div>
</xsl:when>
<xsl:when test="errorId/node()">
<div class="alert alert-danger">
<xsl:choose>
<xsl:when test="errorId = 0">
Вы неверно ввели число подтверждения отправки формы!
</xsl:when>
<xsl:when test="errorId = 1">
Заполните все обязательные поля!
</xsl:when>
<xsl:when test="errorId = 2">
Прошло слишком мало времени с момента последней отправки Вами формы!
</xsl:when>
<xsl:when test="errorId = 3">
Ошибка! Форма не может быть обработана!
</xsl:when>
</xsl:choose>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="description" />
</xsl:otherwise>
</xsl:choose>
<div class="comment no-background">
<!-- Параметр action формы должен быть "./", если обработчик на этой же странице, либо "./form/", если обработчик на другой странице, например ./form/ -->
<form name="form{@id}" id="form{@id}" class="form-horizontal validate" action="./" method="post" enctype="multipart/form-data" role="form">
<!-- Вывод разделов формы 0-го уровня -->
<xsl:apply-templates select="form_field_dir" />
<!-- Вывод списка полей формы 0-го уровня -->
<xsl:apply-templates select="form_field" />
<!-- Код подтверждения -->
<xsl:if test="captcha_id != 0">
<div class="form-group">
<label for="captcha" class="col-xs-12 col-sm-3 control-label">Контрольное число<sup><font color="red">*</font></sup></label>
<div class="col-xs-12 col-sm-3">
<input type="hidden" name="captcha_id" value="{/form/captcha_id}"/>
<input id="captcha" type="text" name="captcha" size="15" class="form-control required" minlength="4" title="Введите число, которое указано выше."/>
</div>
<div class="col-xs-12 col-sm-3">
<img id="formCaptcha_{/form/@id}_{/form/captcha_id}" src="/captcha.php?id={captcha_id}&height=50&width=150" class="captcha" name="captcha" />
<div class="captcha">
<img src="/images/refresh.png" /> <span onclick="$('#formCaptcha_{/form/@id}_{/form/captcha_id}').updateCaptcha('{/form/captcha_id}', 30); return false">Показать другое число</span>
</div>
</div>
</div>
</xsl:if>
<div class="form-group">
<label for="" class="col-xs-12 control-label"></label>
<div class="col-xs-12">
<div class="actions">
<span class="small">Нажимая кнопку "Отправить" вы принимаете политику конфиденциальности.</span><br/>
<!-- Recaptcha -->
<div class="g-recaptcha" data-sitekey="{/form/site_key}"></div><br/>
<!-- Recaptcha -->
<button class="btn btn-primary" type="submit" id="submitButton" name="{button_name}" value="{button_value}" >Отправить</button>
</div>
</div>
</div>
</form>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="form_field_dir">
<fieldset class="maillist_fieldset">
<legend><xsl:value-of select="name" /></legend>
<!-- Вывод списка полей формы -->
<xsl:apply-templates select="form_field" />
<!-- Вывод разделов формы -->
<xsl:apply-templates select="form_field_dir" />
</fieldset>
</xsl:template>
<xsl:template match="form_field">
<!-- Не скрытое поле и не надпись -->
<xsl:if test="type != 7 and type != 8">
<div class="form-group">
<label for="{name}" class="col-sm-12 control-label"><xsl:value-of select="caption" />
<xsl:if test="obligatory = 1">
<sup>
<font color="red">*</font>
</sup>
</xsl:if>
</label>
<div class="col-sm-12">
<!-- Текстовые поля -->
<xsl:if test="type = 0 or type = 1 or type = 2 or type = 10 or type = 11 or type = 12 or type = 13 or type = 14 or type = 15 or type = 16 or type = 17 or type = 18 or type = 19">
<input id="{name}" type="text" name="{name}" value="{value}" size="{size}" >
<xsl:choose>
<!-- Поле для ввода пароля -->
<xsl:when test="type = 1">
<xsl:attribute name="type">password</xsl:attribute>
<xsl:attribute name="class">form-control</xsl:attribute>
</xsl:when>
<!-- Поле загрузки файла -->
<xsl:when test="type = 2">
<xsl:attribute name="type">file</xsl:attribute>
</xsl:when>
<!-- HTML5: Дата -->
<xsl:when test="type = 10">
<xsl:attribute name="type">date</xsl:attribute>
</xsl:when>
<!-- HTML5: Цвет -->
<xsl:when test="type = 11">
<xsl:attribute name="type">color</xsl:attribute>
</xsl:when>
<!-- HTML5: Месяц -->
<xsl:when test="type = 12">
<xsl:attribute name="type">month</xsl:attribute>
</xsl:when>
<!-- HTML5: Неделя -->
<xsl:when test="type = 13">
<xsl:attribute name="type">week</xsl:attribute>
</xsl:when>
<!-- HTML5: Время -->
<xsl:when test="type = 14">
<xsl:attribute name="type">time</xsl:attribute>
</xsl:when>
<!-- HTML5: Дата-Время -->
<xsl:when test="type = 15">
<xsl:attribute name="type">datetime</xsl:attribute>
</xsl:when>
<!-- HTML5: E-mail -->
<xsl:when test="type = 16">
<xsl:attribute name="type">email</xsl:attribute>
</xsl:when>
<!-- HTML5: Поиск -->
<xsl:when test="type = 17">
<xsl:attribute name="type">search</xsl:attribute>
</xsl:when>
<!-- HTML5: Телефон -->
<xsl:when test="type = 18">
<xsl:attribute name="type">tel</xsl:attribute>
</xsl:when>
<!-- HTML5: URL -->
<xsl:when test="type = 19">
<xsl:attribute name="type">url</xsl:attribute>
</xsl:when>
<!-- Текстовое поле -->
<xsl:otherwise>
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="class">form-control</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">form-control required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
</input>
</xsl:if>
<!-- Радиокнопки -->
<xsl:if test="type = 3 or type = 9">
<xsl:apply-templates select="list/list_item" />
<label class="input_error" for="{name}" style="display: none">Выберите, пожалуйста, значение.</label>
</xsl:if>
<!-- Checkbox -->
<xsl:if test="type = 4">
<input type="checkbox" name="{name}" >
<xsl:if test="checked = 1 or value = 1">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input>
</xsl:if>
<!-- Textarea -->
<xsl:if test="type = 5">
<textarea name="{name}" cols="{cols}" rows="{rows}" wrap="soft" class="form-control">
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">form-control required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
<xsl:value-of select="value" />
</textarea>
</xsl:if>
<!-- Список -->
<xsl:if test="type = 6">
<select name="{name}" class="form-control">
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">required</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
<option value="">...</option>
<xsl:apply-templates select="list/list_item" />
</select>
</xsl:if>
</div>
</div>
</xsl:if>
<!-- скрытое поле -->
<xsl:if test="type = 7">
<input type="hidden" name="{name}" value="{value}" />
</xsl:if>
<!-- Надпись -->
<xsl:if test="type = 8">
<div class="row">
<div class="caption"></div>
<div class="field">
<strong><xsl:value-of select="caption" /></strong>
</div>
</div>
</xsl:if>
</xsl:template>
<!-- Формируем радиогруппу или выпадающий список -->
<xsl:template match="list/list_item">
<xsl:choose>
<xsl:when test="../../type = 3">
<input id="{../../name}_{@id}" type="radio" name="{../../name}" value="{value}">
<xsl:if test="value = ../../value">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
<xsl:if test="../../obligatory = 1">
<xsl:attribute name="class">required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
</input><xsl:text> </xsl:text>
<label for="{../../name}_{@id}"><xsl:value-of disable-output-escaping="yes" select="value" /></label>
<br/>
</xsl:when>
<xsl:when test="../../type = 6">
<option value="{value}">
<xsl:if test="value = ../../value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="value" />
</option>
</xsl:when>
<xsl:when test="../../type = 9">
<xsl:variable name="currentValue" select="@id" />
<input id="{../../name}_{@id}" type="checkbox" name="{../../name}_{@id}" value="{value}">
<xsl:if test="../../values[value=$currentValue]/node()">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input><xsl:text> </xsl:text>
<label for="{../../name}_{@id}"><xsl:value-of disable-output-escaping="yes" select="value" /></label>
<br/>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<div class="formretg">
<script type="text/javascript">
$(document).ready(function() {
$("#form18").validate({
focusInvalid: true,
errorClass: "input_error"
})
});
</script>
<h1>Загрузить проект</h1>
<div class="comment no-background">
<form name="form18" id="form18" class="form-horizontal validate" action="./" method="post" enctype="multipart/form-data" role="form">
<div class="form-group">
<label for="name" class="col-sm-12 control-label">Ваше Имя<sup><font color="red">*</font></sup></label>
<div class="col-sm-12">
<input id="name" type="text" name="name" value="" size="0" class="form-control required" minlength="1" title="Заполните поле Ваше Имя">
</div>
</div>
<div class="form-group">
<label for="tele" class="col-sm-12 control-label">Номер телефона<sup><font color="red">*</font></sup></label>
<div class="col-sm-12">
<input id="tele" type="text" name="tele" value="" size="0" class="form-control required" minlength="1" title="Заполните поле Номер телефона">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-12 control-label">Email</label>
<div class="col-sm-12">
<input id="email" type="text" name="email" value="" size="0" class="form-control">
</div>
</div>
<div class="form-group">
<label for="comment" class="col-sm-12 control-label">Комментарий</label>
<div class="col-sm-12">
<textarea name="comment" cols="0" rows="0" wrap="soft" class="form-control"></textarea>
</div>
</div>
<div class="form-group">
<label for="file" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="file" type="file" name="file" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="filetwo" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="filetwo" type="file" name="filetwo" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="filethree" class="col-sm-12 control-label">Загрузить файл</label>
<div class="col-sm-12">
<input id="filethree" type="file" name="filethree" value="" size="0">
</div>
</div>
<div class="form-group">
<label for="" class="col-xs-12 control-label"></label>
<div class="col-xs-12">
<div class="actions">
<span class="small">Нажимая кнопку "Отправить" вы принимаете политику конфиденциальности.</span>
<br>
<div class="g-recaptcha" data-sitekey="6LeOul4gAAAAADI6jCS8oSgT8BJc_0rVLEcJ_H8H"><div style="width: 304px; height: 78px;"><div><iframe title="reCAPTCHA" src="https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LeOul4gAAAAADI6jCS8oSgT8BJc_0rVLEcJ_H8H&co=aHR0cHM6Ly9pbnRlbGVvLnJ1OjQ0Mw..&hl=ru&v=khH7Ei3klcvfRI74FvDcfuOo&size=normal&cb=21huuynaxy4d" width="304" height="78" role="presentation" name="a-g3xzkd7rmsef" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox"></iframe></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea></div><iframe style="display: none;"></iframe></div>
<br>
<button class="btn btn-primary" type="submit" id="submitButton" name="startb" value="Отправить">Отправить</button>
</div>
</div>
</div>
</form>
</div>
</div>
XSL-шаблон
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<!-- ОтобразитьФорму -->
<xsl:template match="/">
<xsl:apply-templates select="/form" />
</xsl:template>
<xsl:template match="/form">
<!-- Проверка формы -->
<SCRIPT type="text/javascript">
$(document).ready(function() {
$("#form<xsl:value-of select="@id" />").validate({
focusInvalid: true,
errorClass: "input_error"
})
});
</SCRIPT>
<h1><xsl:value-of select="name" /></h1>
<xsl:choose>
<xsl:when test="success/node() and success = 1">
<p>Спасибо! Запрос получен, в ближайшее время Вам будет дан ответ.</p>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<!-- Выводим ошибку (error), если она была передана через внешний параметр -->
<xsl:when test="error != ''">
<div class="alert alert-danger">
<xsl:value-of disable-output-escaping="yes" select="error" />
</div>
</xsl:when>
<xsl:when test="errorId/node()">
<div class="alert alert-danger">
<xsl:choose>
<xsl:when test="errorId = 0">
Вы неверно ввели число подтверждения отправки формы!
</xsl:when>
<xsl:when test="errorId = 1">
Заполните все обязательные поля!
</xsl:when>
<xsl:when test="errorId = 2">
Прошло слишком мало времени с момента последней отправки Вами формы!
</xsl:when>
<xsl:when test="errorId = 3">
Ошибка! Форма не может быть обработана!
</xsl:when>
</xsl:choose>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="description" />
</xsl:otherwise>
</xsl:choose>
<div class="comment no-background">
<!-- Параметр action формы должен быть "./", если обработчик на этой же странице, либо "./form/", если обработчик на другой странице, например ./form/ -->
<form name="form{@id}" id="form{@id}" class="form-horizontal validate" action="./" method="post" enctype="multipart/form-data" role="form">
<!-- Вывод разделов формы 0-го уровня -->
<xsl:apply-templates select="form_field_dir" />
<!-- Вывод списка полей формы 0-го уровня -->
<xsl:apply-templates select="form_field" />
<!-- Код подтверждения -->
<xsl:if test="captcha_id != 0">
<div class="form-group">
<label for="captcha" class="col-xs-12 col-sm-3 control-label">Контрольное число<sup><font color="red">*</font></sup></label>
<div class="col-xs-12 col-sm-3">
<input type="hidden" name="captcha_id" value="{/form/captcha_id}"/>
<input id="captcha" type="text" name="captcha" size="15" class="form-control required" minlength="4" title="Введите число, которое указано выше."/>
</div>
<div class="col-xs-12 col-sm-3">
<img id="formCaptcha_{/form/@id}_{/form/captcha_id}" src="/captcha.php?id={captcha_id}&height=50&width=150" class="captcha" name="captcha" />
<div class="captcha">
<img src="/images/refresh.png" /> <span onclick="$('#formCaptcha_{/form/@id}_{/form/captcha_id}').updateCaptcha('{/form/captcha_id}', 30); return false">Показать другое число</span>
</div>
</div>
</div>
</xsl:if>
<div class="form-group">
<label for="" class="col-xs-12 control-label"></label>
<div class="col-xs-12">
<div class="actions">
<span class="small">Нажимая кнопку "Отправить" вы принимаете политику конфиденциальности.</span><br/>
<!-- Recaptcha -->
<div class="g-recaptcha" data-sitekey="{/form/site_key}"></div><br/>
<!-- Recaptcha -->
<button class="btn btn-primary" type="submit" id="submitButton" name="{button_name}" value="{button_value}" >Отправить</button>
</div>
</div>
</div>
</form>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="form_field_dir">
<fieldset class="maillist_fieldset">
<legend><xsl:value-of select="name" /></legend>
<!-- Вывод списка полей формы -->
<xsl:apply-templates select="form_field" />
<!-- Вывод разделов формы -->
<xsl:apply-templates select="form_field_dir" />
</fieldset>
</xsl:template>
<xsl:template match="form_field">
<!-- Не скрытое поле и не надпись -->
<xsl:if test="type != 7 and type != 8">
<div class="form-group">
<label for="{name}" class="col-sm-12 control-label"><xsl:value-of select="caption" />
<xsl:if test="obligatory = 1">
<sup>
<font color="red">*</font>
</sup>
</xsl:if>
</label>
<div class="col-sm-12">
<!-- Текстовые поля -->
<xsl:if test="type = 0 or type = 1 or type = 2 or type = 10 or type = 11 or type = 12 or type = 13 or type = 14 or type = 15 or type = 16 or type = 17 or type = 18 or type = 19">
<input id="{name}" type="text" name="{name}" value="{value}" size="{size}" >
<xsl:choose>
<!-- Поле для ввода пароля -->
<xsl:when test="type = 1">
<xsl:attribute name="type">password</xsl:attribute>
<xsl:attribute name="class">form-control</xsl:attribute>
</xsl:when>
<!-- Поле загрузки файла -->
<xsl:when test="type = 2">
<xsl:attribute name="type">file</xsl:attribute>
</xsl:when>
<!-- HTML5: Дата -->
<xsl:when test="type = 10">
<xsl:attribute name="type">date</xsl:attribute>
</xsl:when>
<!-- HTML5: Цвет -->
<xsl:when test="type = 11">
<xsl:attribute name="type">color</xsl:attribute>
</xsl:when>
<!-- HTML5: Месяц -->
<xsl:when test="type = 12">
<xsl:attribute name="type">month</xsl:attribute>
</xsl:when>
<!-- HTML5: Неделя -->
<xsl:when test="type = 13">
<xsl:attribute name="type">week</xsl:attribute>
</xsl:when>
<!-- HTML5: Время -->
<xsl:when test="type = 14">
<xsl:attribute name="type">time</xsl:attribute>
</xsl:when>
<!-- HTML5: Дата-Время -->
<xsl:when test="type = 15">
<xsl:attribute name="type">datetime</xsl:attribute>
</xsl:when>
<!-- HTML5: E-mail -->
<xsl:when test="type = 16">
<xsl:attribute name="type">email</xsl:attribute>
</xsl:when>
<!-- HTML5: Поиск -->
<xsl:when test="type = 17">
<xsl:attribute name="type">search</xsl:attribute>
</xsl:when>
<!-- HTML5: Телефон -->
<xsl:when test="type = 18">
<xsl:attribute name="type">tel</xsl:attribute>
</xsl:when>
<!-- HTML5: URL -->
<xsl:when test="type = 19">
<xsl:attribute name="type">url</xsl:attribute>
</xsl:when>
<!-- Текстовое поле -->
<xsl:otherwise>
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="class">form-control</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">form-control required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
</input>
</xsl:if>
<!-- Радиокнопки -->
<xsl:if test="type = 3 or type = 9">
<xsl:apply-templates select="list/list_item" />
<label class="input_error" for="{name}" style="display: none">Выберите, пожалуйста, значение.</label>
</xsl:if>
<!-- Checkbox -->
<xsl:if test="type = 4">
<input type="checkbox" name="{name}" >
<xsl:if test="checked = 1 or value = 1">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input>
</xsl:if>
<!-- Textarea -->
<xsl:if test="type = 5">
<textarea name="{name}" cols="{cols}" rows="{rows}" wrap="soft" class="form-control">
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">form-control required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
<xsl:value-of select="value" />
</textarea>
</xsl:if>
<!-- Список -->
<xsl:if test="type = 6">
<select name="{name}" class="form-control">
<xsl:if test="obligatory = 1">
<xsl:attribute name="class">required</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
<option value="">...</option>
<xsl:apply-templates select="list/list_item" />
</select>
</xsl:if>
</div>
</div>
</xsl:if>
<!-- скрытое поле -->
<xsl:if test="type = 7">
<input type="hidden" name="{name}" value="{value}" />
</xsl:if>
<!-- Надпись -->
<xsl:if test="type = 8">
<div class="row">
<div class="caption"></div>
<div class="field">
<strong><xsl:value-of select="caption" /></strong>
</div>
</div>
</xsl:if>
</xsl:template>
<!-- Формируем радиогруппу или выпадающий список -->
<xsl:template match="list/list_item">
<xsl:choose>
<xsl:when test="../../type = 3">
<input id="{../../name}_{@id}" type="radio" name="{../../name}" value="{value}">
<xsl:if test="value = ../../value">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
<xsl:if test="../../obligatory = 1">
<xsl:attribute name="class">required</xsl:attribute>
<xsl:attribute name="minlength">1</xsl:attribute>
<xsl:attribute name="title">Заполните поле <xsl:value-of select="caption" /></xsl:attribute>
</xsl:if>
</input><xsl:text> </xsl:text>
<label for="{../../name}_{@id}"><xsl:value-of disable-output-escaping="yes" select="value" /></label>
<br/>
</xsl:when>
<xsl:when test="../../type = 6">
<option value="{value}">
<xsl:if test="value = ../../value">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="value" />
</option>
</xsl:when>
<xsl:when test="../../type = 9">
<xsl:variable name="currentValue" select="@id" />
<input id="{../../name}_{@id}" type="checkbox" name="{../../name}_{@id}" value="{value}">
<xsl:if test="../../values[value=$currentValue]/node()">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input><xsl:text> </xsl:text>
<label for="{../../name}_{@id}"><xsl:value-of disable-output-escaping="yes" select="value" /></label>
<br/>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
lbrstudio@mail.ru
O`Breea
3 июля 2023 г.
Наблюдается на iphone...
lbrstudio@mail.ru
O`Breea
8 июля 2023 г.
Проблема решилась до банального просто: причиной был блокиратор рекламы в браузерах.
lbrstudio@mail.ru
Авторизация