Viper029
@Viper029
Программирую за печенье

Почему клик по кнопке перезагружает страницу?

Добрый вечер Дамы и Господа. Имеется сайт на Jumbla и я прикручиваю на него свой модуль с jQery\AJAX. Мне нужно, чтобы после ввода данных пользователем и нажатия на кнопку, выполнялся php код на фоне и в итоге сообщал пользователю результат без обновления страницы. Это все я сделал. Но в чем беда.
<form>
    <button  onclick="Pusk(document.getElementById('user'),document.getElementById('tel'),document.getElementById('sms'),document.getElementById('to'),document.getElementById('ajax'))">Отправить</button>
</form>

После нажатия на кнопку и выполнения всех действий страница перезагружается.
И самое интересное.
Если повесить этот onclick например, на на обычный <Лейбл> все хорошо работает. Подозреваю, что джумбла пакостит. Но, так как не мой профиль, не знаю, с какой стороны начать дебажить и чем это лучше делать. Посоветуете что?

P.S. Код функции. И извиняюсь за него. Первый раз работаю с вебом.
function Pusk(_user,_tel,_sms,_to,_ajax)
{  
    
	var user = encodeURIComponent(_user.value);
	var tel = encodeURIComponent(_tel.value); 
	var sms = encodeURIComponent(_sms.value);
	var to = encodeURIComponent(_to.value); 
	ajax = _ajax; 
    var query = 'user='+user+'&tel='+tel+'&sms='+sms+'&to='+to; 
    Request(query);
}

function Request(query)
{
    req.open('post', '/php/1.php' , true);
    req.onreadystatechange = Refresh;
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    req.send(query);  
}

function Refresh()
{
    var a = req.readyState;  
  
    if( a == 4 && req.status==200)
    {   
        var b = req.responseText;
        ajax.defaultValue = b;
        alert(b);
        return(false);
    }
    else
    {  
        ajax.defaultValue = "Отправка";	
    }
}


P.P.S. Спасибо всем. Как всегда, ларчик просто открывался. Нужно подтянуть матан. :)
<button type="button" onclick="Pusk(document.getElementById('user'),document.getElementById('tel'),document.getElementById('sms'),document.getElementById('to'),document.getElementById('ajax'))" return false;">Отправить</button>
  • Вопрос задан
  • 12066 просмотров
Решения вопроса 2
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
function Pusk(...){
    e.preventDefault();
//дальше Ваш код
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@lyeskin
А код вашей функции Pusk кто будет приводить? Ну, наугад тыкну, что вы не возвращаете false в конце функции.
Ответ написан
creativeworm
@creativeworm
добавьте return false в конец,
а лучше для кнопки указать id, а в шапку вынести код js.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы