как отключить & lt; input type = & ldquo; submit & rdquo; & Hellip; & GT; при нажатии кнопки

У меня такая же проблема. Apache не загружает php-файлы с определенного веб-сайта, просто скачал его. Я прочитал этот пост и ответы, и я видел, что у меня есть эта строка в последнем месте файла .htaccess:

AddHandler x-mapp-php5.5  .php

Я прокомментировал это, и все работает нормально.

Спасибо всем !!!

0
задан Joe9619 13 July 2018 в 04:47
поделиться

4 ответа

Кажется, что проблема со всеми остальными ответами до сих пор заключается в том, что когда кнопка отправки отключена, это приводит к тому, что пара данных name - value, связанная с ней, не будет отправлена, поскольку кнопка отключена перед публикацией данных. Тем не менее, кнопки submit обычно не используются для передачи данных в любом случае, поэтому одним из решений этой проблемы является просто связать данные с отдельным скрытым элементом input.

HTML:

<form id="form" target="_blank" method="post" action="page2.php">
      <input type="hidden" name="btn" value="btn"></input>
      <input id="submit-button" type="submit" value="btn">
      <br />
</form>

Обратите внимание, что я добавил id s в форму и кнопку отправки для выбора в JavaScript.

JavaScript:

// Get the form and the submit button.
var form = document.getElementById('form');
var submitButton = document.getElementById('submit-button');

// Disables the submit button.
function disableSubmitButton() {
  submitButton.setAttribute('disabled', '')
}

// Disable the submit button when the form is submitted, with fallback for IE 5-8.
if (form.addEventListener) {
  form.addEventListener('submit', disableSubmitButton, false);
} else {
  form.attachEvent('onsubmit', disableSubmitButton);
}

Если у вас было два разных представления кнопки, вы также можете передать другое значение на страницу действия в зависимости от того, какая кнопка была нажата, установив значение скрытого элемента input, на основе которого был нажат:

HTML:

<form id="form" target="_blank" method="post" action="page2.php">
  <input id="hidden-input" type="hidden" name="button-pressed" value=""></input>
  <input id="submit-button-1" type="submit" value="Submit Button 1">
  <input id="submit-button-2" type="submit" value="Submit Button 2">
  <br />
</form>

JavaScript:

// Get the form and the hidden input.
var form = document.getElementById('form');
var hiddenInput = document.getElementById('hidden-input');

// Set the value of the hidden input depending on which button was pressed.
function setHiddenInputValue(event) {
  // Get the id of the button that was pressed.
  pressedButtonId = event.target.id;

  // Set the value of the hidden input element to be the same as the id of the pressed button.
  hiddenInput.setAttribute('value', pressedButtonId);

// Disables the submit button that was pressed.
function disableSubmitButton(event) {
  event.target.setAttribute('disabled', '')
}

// Disable the submit button when the form is submitted, with fallback for IE 5-8.
if (form.addEventListener) {
  form.addEventListener('submit', function(event) {
    // Event object fallback for IE 5-8.
    if (!event) {
      event = window.event;
    }

    setHiddenInputValue(event);
    disableSubmitButton(event);
  }, false);
} else {
  form.attachEvent('onsubmit', function(event) {
    // Event object fallback for IE 5-8.
    if (!event) {
      event = window.event;
    }

    setHiddenInputValue(event);
    disableSubmitButton(event);
  });
}
0
ответ дан Jared Cleghorn 17 August 2018 в 13:40
поделиться
  • 1
    Я получил ваше мнение и большое спасибо. Но если у меня есть две или более кнопки, вся скрытая форма формы будет передана в другой файл? (создайте скрытые, которые зависят от количества кнопок) EDIT: другой файл Это означает page2.php – Joe9619 16 July 2018 в 16:29
  • 2
    @ Joe9619 Вы спрашиваете, как вы можете передать два разных значения в зависимости от того, какая кнопка нажата? – Jared Cleghorn 16 July 2018 в 16:49
  • 3
    Да, теперь я пытаюсь использовать функцию javascript для создания скрытых элементов в каждой кнопке. Но я не уверен, что это хорошая идея и извините за мое английское умение. – Joe9619 16 July 2018 в 17:03
  • 4
    Итак, у вас есть две кнопки отправки, и вы хотите передать другое значение в зависимости от того, какая из них нажата? Или есть более двух кнопок? – Jared Cleghorn 16 July 2018 в 17:05
  • 5
    В моем проекте у меня есть много кнопок, но теперь я хочу сделать простой с 2-мя кнопками. – Joe9619 16 July 2018 в 17:10

Вы можете сделать это с помощью jQuery. Вам нужно включить скрипт jQuery. И напишите свой собственный код для управления событиями

<form target="_blank" method="post" action="page2.php">
    <?
    echo '<input type="submit" value="btn" name="btn" id="submitBtn"><br>';
    ?>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

$(document).ready(function() {

$("#submitBtn").click(function(){
    $("input[type=submit]").attr('disabled','disabled'); // disable the button

   // $("input[type=submit]").removeAttr('disabled') You can enable the button from this code
});

});
1
ответ дан Faizan Fayaz 17 August 2018 в 13:40
поделиться
  • 1
    переменная $ _POST ['btn'] не определена на странице2.php, я думаю, что переменная name = & quot; btn & quot; не может пройти через страницу1 на страницу2. но спасибо за помощь – Joe9619 13 July 2018 в 09:28

Вы можете отключить при отправке формы: -

$('form#id').submit(function(){
    $(this).find(':input[type=submit]').prop('disabled', true);
});
2
ответ дан nageen nayak 17 August 2018 в 13:40
поделиться
  • 1
    Я хочу использовать $ _POST [& quot; btn & quot;] на странице 2.php. этот скрипт может отключить кнопку отправки, но не может использовать переменную & quot; btn & quot; на page2.php, и если я использую echo $ _POST [& quot; btn & quot;], которые дают мне результат переменной UNDEFINE & quot; btn & quot; , в любом случае спасибо за помощь. – Joe9619 13 July 2018 в 09:24

$('form').submit(function(){
    $(this).find(':input[type=submit]').attr('disabled','disabled');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form target="_blank" method="post" action="page2.php">
   <input type="submit" value="btn" name="btn">
</form>

0
ответ дан Nikunj Balar 17 August 2018 в 13:40
поделиться
  • 1
    спасибо за помощь, но page2.php не может найти переменную & quot; btn & quot; – Joe9619 13 July 2018 в 09:21
Другие вопросы по тегам:

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