2014-09-28 3 views
0

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

Я попытался отвязать от Jquery, но не получает никакого результата

поэтому любое предложение было бы здорово

<html> 
    <head> 
     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"></script> 
    </head> 
    <body> 
     <div id="Result"></div> 
     <form id="Form" action="File.php" autocomplete="off"> 
      <input type="text" name="Name" /> 
      <br/> 
      <input type="text" name="Pass" /> 
      <br/> 
      <input type="button" id="Submit" value="Run Code" /> 
     </form> 
     <script> 
      $(document).ready(function() 
      { 
       $("#Submit").click(function() 
       { 
        $("#Form").submit(function(e) 
        { 
         $.ajax(
         { 
          url: $(this).attr("action"), 
          type: "POST", 
          data: $(this).serializeArray(), 
          success: function(data, textStatus, jqXHR) 
          { 
           $("#Result").html(data); 
          } 
         }); 

         e.preventDefault(); 
        }); 

        $("#Form").submit(); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

пожалуйста, не стесняйтесь обратиться за более подробной

+1

Вы действительно должны остановить верхний регистр первой буквы все, что вы пишете, и хороший совет никогда не использовать имя или id 'submit' для любого элемента внутри формы. – adeneo

+1

Как для очистки всех входов, '$ ('input'). Val ('')'! – adeneo

+1

Другим хорошим советом было бы не связать обработчики событий внутри обработчиков событий, так как вы добавляете новый обработчик событий для отправки формы при каждом нажатии кнопки. – adeneo

ответ

1

Вы можете очистить все входы с помощью

$("input[type='text']").val(''); 

Вы связывание обработчика событий внутри другого обработчика событий. Каждый раз, когда нажимается кнопка, к форме прикрепляется новый обработчик. Таким образом, после того, как n количества кликов, вы будете посылать n количества ajax запросов, как вы можете видеть here

В идеале, ваш код должен быть

$(document).ready(function() { 

    $("#Submit").click(function() { 
    $("#Form").submit(); 
    }); 

    $("#Form").submit(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: $(this).attr("action"), 
     type: "POST", 
     data: $(this).serializeArray(), 
     success: function (data, textStatus, jqXHR) { 
      $("input[type='text']").val(''); // reset the input values 
      $("#Result").html(data); 
     } 
    }); 
    }); 
}); 

Demo.

Примечание стороны: Вы можете просто использовать кнопку submit вместо запуска отправки формы вручную, как this

-1

Здесь вы идете:

$(document).find('input').each(function(){ 
    $(this).val(''); 
}); 

Дополнительная информация о: http://api.jquery.com/val/

+0

отлично работает, спасибо – DarkOne

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