2014-01-04 5 views
1

Я создал систему, которая при вводе определенного значения будет исчезать в значениях на основе выбора.Отправить форму без перезагрузки страницы и ссылку на javascript

У меня есть этот код здесь, который является основной формой, в которой вы можете ввести конкретные номера моделей в форму и затем нажать enter.

<form> 
    <input type="text" name="ModNum" id="ModelNumber" pattern="^PIV13RT[23]?$" 
title="Your Model Number." placeholder="Please Input a Model number" size="35" maxlength="8"> 
    <center><span class="egsmall"><strong>Eg: PIV13RT, PIV13RT2, Ect.</strong></span></center> 
    <center><div class="btnwrap"><input name="proceed" type="submit" class="submitsup" id="forward" /></div></center> 
</form> 

Проблема заключается в том, что при нажатии клавиши ввода, потому что внутри формы, он перезагружает страницу, это означает, что замирания в не загружается, потому что он перезагрузки страницы.

$("#forward").click(function(){ 
$.ajax({ 
}).done(function() { 
    $('.optionbk').fadeIn('slow'); 
}); 
}); 

Я понимаю, что это также можно сделать с помощью Javascript, но это не позволит мне использовать форму.

$("#forward").click(function(){ 
    var text = $("#ModelNumber").val(); 
    var comparingText = "PIV13RT"; 
    var comparingText2 = "PIV13RT2"; 
    var comparingText3 = "PIV13RT3"; 
    if (text == comparingText) { 
$('.optionbk').fadeIn('slow'); 
    } 
     if (text == comparingText2) { 
$('.optionbk').fadeIn('slow'); 
    } 
      if (text == comparingText3) { 
$('.optionbk').fadeIn('slow'); 
    } 
}); 

Есть в любом случае, что я могу сделать это внутри формы, но сделать это так, что страница не обновляется себя так, что замирание работает вместо перезагрузки. Форма необходима, потому что она соответствует этой конкретной схеме. Обратите внимание, что форма не связана с внешним файлом PHP.

ответ

4

Самое быстрое решение состоит в том, чтобы добавить onsubmit="return false" в ваше отверстие <form>.

3

Вы должны привязать свою функцию обратного вызова к событию отправки, которое форма отправляет и возвращает значение false для отмены фактического представления.

$('form').bind('submit', function(){ 
    $.ajax(); 
    return false; 
}); 
+0

Это делает то же, что и в предыдущем ответе, кроме как с javascript. Что делать, если JS отключен в браузере клиента? – ArtOfCode

+0

Ни одно решение не будет работать, если javascript отключен. Важно то, что мое решение ловит событие, которое будет отправлено при отправке формы, независимо от того, как это было вызвано (щелчок, клавиатура, scriot ...) –

+0

Onsubmit делает то же самое - он ловит событие отправки и возвращает false , предотвращая перезагрузку страницы. – ArtOfCode

Смежные вопросы