2012-11-30 5 views
1

Как сделать Javascript, который сделает это, когда я нажму кнопку отправки, это изменит название кнопки на что-то вроде этого «Загрузка ...» и после 3 сек кнопка должна быть нажатаКогда кнопка нажата, подождите 3 секунды, затем отправьте javascript

<input type="Submit" name="submitNew" id="submitNew" value="Send"> 

Он будет действовать как «спам-фильтр» для людей ..

+0

Это не лучший способ, чтобы предотвратить спам ... – Brad

+0

Определить "спам-фильтр". Если вы беспокоитесь о ботах, это не сработает, потому что в большинстве случаев они не будут включены JS. – PeeHaa

+0

Вы должны использовать таймер http://www.w3schools.com/js/js_timing.asp. На мышином мышь куда-нибудь поместим флаг и запустим таймер, при помощи мыши снимет этот флаг и остановит таймер. Если после запуска таймера флаг присутствует, то вы знаете, что вы нажимали кнопку мыши все время. –

ответ

6

Одним из возможных решений является установка submit событие для form элемента следующим образом:

HTML:

<form onsubmit="return formSubmit(this);"> 

JavaScript:

function formSubmit(form) { 
    document.getElementById("submitNew").value = "Loading..."; 
    setTimeout(function() { 
     form.submit(); 
    }, 3000); // 3 seconds 
    return false; 
} 

Другой способ установить событие динамически (дань котят!):

window.onload = function() { 
    document.getElementById("formID").onsubmit = function() { 
     var form = this; 
     document.getElementById("submitNew").value = "Loading..."; 
     setTimeout(function() { 
      form.submit(); 
     }, 3000); // 3 seconds 
     return false; 
    }; 
};​ 

DEMO:http://jsfiddle.net/spWDk/

+1

Вам нужно использовать встроенный JavaScript? Подумайте о котятах. – PeeHaa

+0

Где я должен положить этот html? –

+0

@ user1867369 Проверьте DEMO из обновленного ответа. Я надеюсь, что это помогает. – VisioN

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