Как сделать проверку валидности e-mail во внешней форме
#1
Отправлено 31 Июль 2014 - 22:18
Сейчас так:
<script>
var k_form_rand_10=Math.random()+"_"+(new Date()).getTime(); // Уникальный id формы, используется в файлах и для получения ответа анкеты
var k_upload_in_progress=0;
var k_answer_hide_form10=1;
var k_was_submited10=0;
var k_10_curr_hash = '';
function k_save_qst10()
{
k_answer_hide_form10=1;
var page_charset=window.document.charset;
if (!page_charset) page_charset=window.document.characterSet;
if (typeof(custom_save_qst10) == 'function') {
if (!custom_save_qst10()) return ;
}
if (k_was_submited10) return;
k_was_submited10=1;
document.getElementById('k_savebutton10').disabled=true;
var qst_form=document.createElement("form");
qst_form.setAttribute('enctype', 'multipart/form-data');
qst_form.setAttribute('action', 'http://kamin2.clientbase.ru/questionare.php?page_charset='+page_charset+'&ts'+new Date().getTime());
qst_form.setAttribute('target', 'k_frame_upload_10');
qst_form.setAttribute('method', 'post');
document.body.appendChild(qst_form);
var qst_input;
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1690');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1690').value;
if (!qst_input.value) {alert('Введите пожалуйста свое имя.."'); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1700');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1700').value;
if (!qst_input.value) {alert('Введите пожалуйста свой телефон. '); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1710');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1710').value;
if (!qst_input.value) {alert('Введите пожалуйста свой e-mail. "'); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
;
if(k_10_curr_hash != '') {
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','hash');qst_form.appendChild(qst_input);
qst_input.value=k_10_curr_hash;
} else {
if(document.location.href.split('hash=')[1]) {
if(document.location.href.split('hash=')[1].split('.').length>1) {
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','hash');qst_form.appendChild(qst_input);
qst_input.value=document.location.href.split('hash=')[1].split('.')[0];
}
}
}
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_rand_10');qst_form.appendChild(qst_input);
qst_input.value=k_form_rand_10;
qst_form.submit();
document.body.removeChild(qst_form);
};
function k_save_resp10(event)
{
if (document.getElementById('k_frame_upload_10').src=='') return ; // Выходим если загрузки не было
var page_charset=window.document.charset;
if (!page_charset) page_charset=window.document.characterSet;
if (k_upload_in_progress)
{ // Загрузка файлов
var obj=event.target; if (!obj) obj=event.srcElement;
// Убираем значек загрузки
$(".k_upload_progress").removeClass('k_upload_progress_img');
// Необходима проверка - загружен ли файл
for (var i = 0; i < k_upload_files_list.length; i++)
{
var f_name=k_upload_files_list[i].name;
var f_obj =k_upload_files_list[i].obj;
var rnd_sess=Math.floor(Math.random()*10000);
var ss = document.createElement('script');
ss.src="http://kamin2.clientbase.ru/questionare.php?sel=test_upload&qst_id=10&k_rand="+k_form_rand_10+"&k_resp="+rnd_sess+"&f_name="+f_name+"&page_charset="+page_charset;
ss.setAttribute('i_pos',i);
ss.setAttribute('rnd_sess',rnd_sess);
var done = false;
ss.onload=ss.onreadystatechange=function(){
if ( !done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") )
{
done = true;
var i=this.getAttribute("i_pos");
var rnd_sess=this.getAttribute("rnd_sess");
var f_name=k_upload_files_list[i].name;
var f_obj =k_upload_files_list[i].obj
var field_id =k_upload_files_list[i].field_id;
eval("var data=k_resp"+rnd_sess+";");
if (data.indexOf(' uploaded.')!=-1)
{
var size = parseInt(data)+"";
size=size.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
// Отображем размер
f_obj.find(".k_upload_progress").html(" - "+size+" B");
}
else
{
f_obj.find(".k_upload_progress").html(" - Провалено");
}
document.getElementById('k_sbmt_file_'+'10'+'_'+field_id).setAttribute('was_upload',1);
ss.onload = ss.onreadystatechange = null;
document.body.removeChild(ss);
}
}
document.body.appendChild(ss);
}
k_upload_in_progress=0;
return ;
}
if (document.getElementById('k_frame_upload_10').getAttribute('second_load'))
{
if (!k_was_submited10) return;
k_was_submited10=0;
document.getElementById('k_savebutton10').style.display='none';
document.getElementById('k_savebutton10').disabled=false;
if (typeof(custom_qst_res10) == 'function') {
custom_qst_res10();
}
else
{
// Получаем результат формы
var ss = document.createElement('script');
ss.src="http://kamin2.clientbase.ru/questionare.php?sel=get_answer&qst_id=10&k_rand="+k_form_rand_10;
var done = false;
ss.onload=ss.onreadystatechange=function(){
if ( !done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") )
{
done = true;
eval("var data=k_answer"+10+";delete k_answer"+10+";");
if (data.done !== undefined)
{
if (data.done != ' ')
$('#k_qst_res_10').append(data.done);
document.getElementById('k_savebutton10').style.display='';
}
else if(data.error !== undefined)
{
$('#k_qst_err_res_10').html('');
if (data.error != ' ')
$('#k_qst_err_res_10').append(data.error);
data = false;
k_answer_hide_form10 = 0;
document.getElementById('k_savebutton10').style.display = '';
}
else
{
document.getElementById('k_qst_res_10')
}
if (k_answer_hide_form10)
{
document.getElementById('k_qst_10').style.display='none';
location.href ='thanks-page.php';
}
ss.onload = ss.onreadystatechange = null;
document.body.removeChild(ss);
}
}
document.body.appendChild(ss);
}
document.getElementById('k_frame_upload_10').src=""; // Четвертый уровень защиты от повторной загрузки
}
else
document.getElementById('k_frame_upload_10').setAttribute('second_load',1);
}
$(function(){
if(document.getElementById('k_frame_upload_10').onload == null) {
$('#k_frame_upload_10').on('load', function(event) { k_save_resp10(event); });
}
});
</script>
#2
Отправлено 01 Август 2014 - 08:37
Цитата
Не понял вопроса. Вы что хотите то конкретно?
#3
Отправлено 01 Август 2014 - 14:38
Что-то наподобе:
<?php
function is_email($email) {
if (! preg_match( '/^[A-Za-z0-9!#$%&\'*+-/=?^_`{|}~]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+[A-Za-z]$/', $email)) {
return false;
} else {
return true;}
}
if (is_email($email)) echo "E-mail правильный";
else echo "Введите правильный e-mail";
?>
Пытался подключить, но не вышло. Знаний в программировании нет, изучаю только неделю.
#4
Отправлено 01 Август 2014 - 14:50
Хотя по идее без знаний в программировании вообще не рекомендуется вычисления писать. Будете как начинающий сапер на минном поле.
#5
Отправлено 01 Август 2014 - 16:38
#6
Отправлено 01 Август 2014 - 16:43
Цитата
Какую еще ссылку? Почитайте документацию, там все описано.
#7
Отправлено 01 Август 2014 - 16:48
#8
Отправлено 01 Август 2014 - 17:05
Сообщение отредактировал yKa3: 01 Август 2014 - 17:06
#9
Отправлено 01 Август 2014 - 17:07
#10
Отправлено 01 Август 2014 - 17:11
#11
Отправлено 01 Август 2014 - 17:18
yKa3 (01 Август 2014 - 17:11) писал:
В первую очередь для таблиц, и там они точно работают. Просто не уверен, что добавляли и во внешние формы, может да, а может и нет, проверять надо. Хотя, если не работают, это не значит что так и должно быть, можно отправить заявку в техподдержку с просьбой исправить этот момент.
#12
Отправлено 01 Август 2014 - 17:20
Вставил скрипт сразу после проверки на заполнение полей в скрипте.
Сообщение отредактировал yKa3: 01 Август 2014 - 17:21
#13
Отправлено 01 Август 2014 - 17:24
#14
Отправлено 01 Август 2014 - 17:38
#15
Отправлено 03 Август 2014 - 14:07
Цитата
После какого "основного скрипта"? Вы куда вообще код js вставляли, в поле JavaScript вкладки Вычисления, или нет?
#16
Отправлено 03 Август 2014 - 14:31
#17
Отправлено 03 Август 2014 - 14:36
#18
Отправлено 03 Август 2014 - 14:57
А такого не происходит не при самостоятельном добавлении вычислений в скрипт, ни при добавлении через Поле Яваскрипт в вычислениях.
#19
Отправлено 03 Август 2014 - 15:36
#20
Отправлено 03 Август 2014 - 15:47
var qst_input;
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1690');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1690').value;
if (!qst_input.value) {alert('Введите пожалуйста свое имя.."'); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1700');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1700').value;
if (!qst_input.value) {alert('Введите пожалуйста свой телефон. '); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','k_input_field_10_1710');qst_form.appendChild(qst_input);
qst_input.value=document.getElementById('k_input_field_10_1710').value;
if (!qst_input.value) {alert('Введите пожалуйста свой e-mail. "'); document.getElementById('k_savebutton10').disabled=''; k_was_submited10=0; return;}
;
if(k_10_curr_hash != '') {
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','hash');qst_form.appendChild(qst_input);
qst_input.value=k_10_curr_hash;
} else {
if(document.location.href.split('hash=')[1]) {
if(document.location.href.split('hash=')[1].split('.').length>1) {
qst_input=document.createElement('input');qst_input.setAttribute('type','hidden');qst_input.setAttribute('name','hash');qst_form.appendChild(qst_input);
qst_input.value=document.location.href.split('hash=')[1].split('.')[0];
}
}
}
Вот этот код перестает работать при добавлении вычислений
Сообщение отредактировал yKa3: 03 Август 2014 - 15:48
Количество пользователей, читающих эту тему: 13
0 пользователей, 13 гостей, 0 анонимных