2015-06-02 7 views
0

Я занимаюсь созданием веб-сайта для размещения моего музыкального потока в прямом эфире. Я сделал раздел, где люди могут предлагать песни, а предложения хранятся в базе данных SQL. Я хочу, чтобы кнопка «Отправить» в этой форме изменилась при отправке с «Отправить рекомендацию» на «Спасибо» при нажатии, а также для того, чтобы клиент мог нажать ее один раз, чтобы избежать наводнения. Ну, мне не удалось сделать эти совместные работы (и сохранить требуемый атрибут в моих тегах), но мне удалось сделать их по одному. Это мой код, пожалуйста, помогите!Изменение текста HTML-текста с использованием JavaScript

<form action="./add.php" method="POST" target="sendFormSuggest" onsubmit="return checkBeforeSubmit() "> 
    <!--The form for suggestions --> 
    Song: <span style="color: red">* </span> 
    <input class="recom" type="text" name="song" size="50" required><br> 
    Artist: <span style="color: red">* </span> 
    <input class="recom" type="text" name="artist" size="50" required><br> 
    YouTube Link: 
    <input class="recom" type="text" name="link" size="50"><br> 
    <input class="Submit" type="submit" value="Submit Recommendation" id="ButtonRecom"> 
</form> 

<script type="text/javascript"> <!--this checks the any form for second submition --> 
    var wasSubmitted = false; 
    function checkBeforeSubmit() { 
     if (!wasSubmitted) { 
      wasSubmitted = true; 
      return wasSubmitted; 
      document.getElementById("ButtonRecom").value = "Thank you!"; 
     } 
     return false; 
    } 
</script> 
+0

Вначале необходимо сначала заблокировать многочисленные запросы на сервере *. – Mooseman

+0

Перед изменением значения кнопки у вас есть выражение «return wasSubmitted;». Предварительно измените значение перед оператором return, и оно будет работать. – zvona

+0

Я лично принимаю сервер с помощью wamp, и он не предназначен для большой толпы, поэтому я буду закрыт, чтобы клиент не нажал кнопку. –

ответ

0

Вам нужно только поменять местами две строки:

var wasSubmitted = false;  
    function checkBeforeSubmit(){ 
     if(!wasSubmitted) { 
      wasSubmitted = true; 
      // pull this line up 
      document.getElementById("ButtonRecom").value= "Thank you!"; 
      // push this line down 
      return wasSubmitted; 
     } 
    return false; 
    } 
+0

Спасибо, ребята, я уже сказал, что это ответ в комментариях, но thnx для вашего времени! –

1

вы можете попробовать Somthing так: здесь я Тринг chnage кнопку текст из «Добавить гостя» на «Добавить семью
член '

<script type="text/javascript"> 
if (!top.adminpanel) 
{   
var myPage = document.getElementByID 
('idSectionGuestListContainer'); 
    if (myPage) 
{ 
myPage.innerHTML = myPage.innerHTML.replace('Add guest', 'Add family  
member'); 
}  
} 

0

Предложение: Последовательные запросы от одного и того же клиента в течение небольшого периода времени (например, 5 заявок в течение 2 секунд) должны быть экранированы на стороне сервера, чтобы эффективно предотвращать наводнения.

Однако, чтобы ответить на ваш вопрос:

ваш код возвращает до изменения текста кнопки, так что вы должны двигаться return вниз. см.:

function checkBeforeSubmit(){ 
     if(!wasSubmitted) { 
      wasSubmitted = true; 
      document.getElementById("ButtonRecom").value= "Thank you!"; 
      return true; 
     } 
     return false; 
    } 
Смежные вопросы