Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Form action, помогите сделать форму

Автор: Cheery
Дата сообщения: 13.08.2013 06:03
Botovskiu

Цитата:
да надо изучать js

это не js в чистом виде - это фреймворк jQuery


Цитата:
на сколько сложный язык

у каждого свои способности к восприятию и обучению
Автор: Sutar
Дата сообщения: 21.10.2015 17:29
Здравствуйте, имеется такой код.


Код: var chech_act=true;
function login(){
    if(chech_act==true){
        chech_act=false;
        error(0,"");
        var login=document.getElementById("login").value;
        var password=document.getElementById("password").value;
        if(login.length==0||password.length==0){chech_act=true;error(1,"Заполните все поля!");}else{OpenHttpRequest("/admin/post.php","login="+encodeURIComponent(login)+"&password="+encodeURIComponent(password),function(res){chech_act=true;if(res!="#QTIS"){if(res=="true"){location.href="/admin";}else{return error(1,res);}}return false;});}
    }
    return false;
}
function error(i,txt){
    document.getElementById("info").style.display="none";
    if(i==1){document.getElementById("info").innerHTML=txt;document.getElementById("info").style.display="block";}
    return false;
}


<form action="" method="post" onsubmit="login();return false;">
<input type="text" class="form-control" id="login" placeholder="Login" autofocus>
<input type="password" class="form-control" id="password" placeholder="Password">
<input type="submit" class="form-btn" onclick="return login();" value="Login">
</form>
Автор: vaizmanai
Дата сообщения: 22.10.2015 22:06
а зачем у тебя у формы onsubmit="login();return false;" ?
Автор: antoxamad
Дата сообщения: 23.10.2015 10:44
срочно на изучение JS/jQuery!!!! так далеко не уедешь!
Автор: Sutar
Дата сообщения: 23.10.2015 22:52
vaizmanai
чтоб когда была отправка form, отлавливалось событие в JS.

antoxamad
Если убрать form, по клику всё работает. А вот с form - не хочет.
Автор: vs6262
Дата сообщения: 24.10.2015 21:29
Sutar
помоему в Вашем случае form не нужен
Автор: Sutar
Дата сообщения: 25.10.2015 11:10
vs6262
совершенно верно.
Но если ввести данные в поля и нажать Enter - ничего не происходит. Для этого нужна форма.
Автор: vs6262
Дата сообщения: 25.10.2015 11:45
и

OpenHttpRequest("/admin/post.php","login="+encodeURIComponent(document.getElementById("login").value)+"&password="+encodeURIComponent(document.getElementById("password").value)

извеняюсь не увидел вначале
Автор: Sutar
Дата сообщения: 26.10.2015 21:07
vs6262

Код: function OpenHttpRequest(page,send,fun){
    if(http){
        http.open("POST",page,true);
        http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        http.send(send);
        var timeout=setTimeout(function(){http.abort();alert("Query time is over");return fun("#QTIS");},5000);
        http.onreadystatechange=function(){if(http.readyState==4){if(http.status==200){clearTimeout(timeout);return fun(http.responseText);}}}
    }
    return false;
}
Автор: vs6262
Дата сообщения: 26.10.2015 21:55
AJAX jQuery

Код:
---------------------------------------------------------
function showGetResult(_url)
{
var result = null;
var scriptUrl = _url;
$.ajaxSetup({ cache: false });
$.ajax({
url: scriptUrl,
type: 'POST',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
return result;
}
--------------------------------------------------------
Автор: ConstBBB
Дата сообщения: 27.10.2015 06:11

Цитата:

function showGetResult(_url)
{
var result = null;
var scriptUrl = _url;
$.ajaxSetup({ cache: false });
$.ajax({
url: scriptUrl,
type: 'POST',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
return result;
}


ну это вообще чушь. во-первых, async: false завесит браузер на время обработки запроса, не надо так делать, уже 2015й год а не 90е, во-вторых, если убрать asyc, она всегда будет возвращать null, потому что когда ajax-вызовы работают асинхронно, они передают полученные данные в колбэки и промисы.

$.post(scriptUtl).then(function(html) {
...
}, function() {
alert('error');
});

и всё.

Добавлено:
и да, $.ajaxSetup({ cache: false }); влияет только на выполнение GET-запросов. POST-запросы браузер никогда не кэширует. и выполнять это надо не каждый раз перед запуском аякс-запроса, достаточно вызвать один раз при открытии страницы.
Автор: Sutar
Дата сообщения: 27.10.2015 22:06
vs6262
зачем мне целый модуль AJAX, если я написал малую часть, которая работает так-же?
Мне нужна помощь в отловке события...

Страницы: 12

Предыдущая тема: [PHP] Публикация объявлений на авито.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.