2016-06-09 3 views
0

안녕하세요이 내가 jQuery를 기능을 실행하는 버튼을 클릭하고 그래서 여기에 콘솔에서 모든 데이터를 인쇄 할 때 내가 원하는 것은 일부 데이터와 형식은 내 양식 코드 :이유는이 콘솔에 인쇄되지

<form> 
    <div class="row">   
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="fecha">Fecha:</label> 
       <input type="text" name="fecha" id="fecha" class="form-control" placeholder="dd/mm/yyyy"> 
      </div> 
     </div> 
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="total">Total:</label> 
       <input type="number" min="0" name="total" id="total" class="form-control"> 
      </div> 
     </div> 
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="abono">Abono:</label> 
       <input type="number" min="0" name="abono" id="abono" class="form-control"> 
      </div> 
     </div> 
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label for="resta">Restante:</label> 
       <input type="text" name="resta" id="resta" class="form-control" readonly> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-md-6 col-md-offset-5"> 
      <button type="submit" value="actualizar" class="btn btn-info" id="actualizar">Actualizar Datos 
       <span class="glyphicon glyphicon-refresh"></span> 
      </button> 
     </div> 
    </div> 
</form> 

//Al clickear boton actualizar ordenes 
$('#actualizar').click(function(){ 
    var orden = parseInt($('#norden').val()); 
    var id_tecnico = parseInt($('#id_tec').val()); 
    var memoria = $('#memoria').val(); 
    var chip = $('#chip').val(); 
    var tapa = $('#tapa').val(); 
    var falla = $('#falla').val(); 
    var observacion = $('#observacion').val(); 
    var estado = $('#estado').val(); 
    var fecha = $('#fecha').val(); 
    var total = parseInt($('#total').val()); 
    var abono = parseInt($('#abono').val()); 
    var ajaxUrl = 'actualizar_ordenes.php'; 

    data = { 'norden': orden, 'id_tec': id_tecnico, 'memoria': memoria, 'chip': chip, 'tapa': tapa, 
      'falla': falla, 'observacion': observacion, 'estado': estado, 'fecha': fecha, 
      'total': total, 'abono': abono }; 


    console.log(data); 
    /*$.post(ajaxUrl, data, function(response){ 
     if(response.empty) 
      alert("Datos no actualizados"); 
     else{ 
      alert("Datos Actualizados."); 
      location.reload(); 
     } 
    }) */ 
}); 

:

이 내 스크립트가

<script src="js/jquery-1.12.2.min.js"></script> 
<script type="text/javascript" src="js/actualizar_orden.js"></script> 

포함되어 actualizar_orden.js 파일입니다 나는 그 데이터를 콘솔에 기록하여 콘솔에 기록하는 것을 원하지 만, 대신 콘솔의 출력을 볼 수 없도록 내 페이지를 콘솔에 자동으로 새로 고침하는 로그를 기록합니다 ... 시도했습니다. 모질라와 크롬을 모두 사용하지만 아직 아무것도 안된다.

+1

는'유형 = – Jeff

+1

! 버튼에' "제출"또는 [기본 방지] (http://www.w3schools.com/jsref/event_preventdefault.asp) – Jeff

+0

@Jeff [그것은 아직 제출 제거 양식]. (https://jsfiddle.net/73d7csx8/) 그들은'return false' 제출 처리기가 필요합니다. –

답변

2

나는 화면을 새로 고침하지 않고 jquery를 사용하여 양식을 제출하고 싶다.

단순히 귀하의 js 파일에서 다음을 수행하십시오

$(function() { 
    $('form.ajax').submit(function(e) { // catch submit event on form with ajax class 
    e.preventDefault(); // prevent form act as default (stop default form sending) 
    var $form = $(this); // caching form object to variable 
    var data = $form.serializeArray(); // getting all inputs from current form and serializing to variable 
    var url = $form.attr('action'); // reading forms action attribute 
    console.log('DATA:', data); 

    $.post(url, data, function(response) { // posting form data to url (action) 
     console.log('RESPONSE:', response); 
     if(response.empty) { 
      alert("Datos no actualizados"); 
      return; 
     } 

     alert("Datos Actualizados."); 
     $form.find('input, select').val(''); // resets form inputs 
    }); 
    }); 
}); 

및 양식 태그를 변경하는 것은 이렇게 될 : 당신이 할 수있는)

1 :

<form class="ajax" action="actualizar_ordenes.php" method="post"> 

이 예를 당신에게 그것을 보여줍니다 클래스가 정의 된 모든 양식 제출을 포착하십시오.

2) 필요 없음 js 코드에서 정확한 URL을 설정하십시오 (전에 하드 코드 된 ajaxUrl 변수). 이제 양식 속성에서 양식 작업 url을 가져옵니다.

3)가 아약스 게시물을 수행하고 성공하면, 그래서 당신은 정말 유연한 솔루션을 만들기 위해 몇 가지 현명한 행동을 재정의하고,

이 유연하지를 제출하는 각 양식에 대한 사용자 정의 코드를 작성 잊을 수 있습니까? (:. 기본적으로 페이지를 다시로드 설정하지 때

+1

'XY 문제 '에서'Y'를 찾기 위해 upvote! – Jeff

+0

@ 제프 빙고! (: – num8er

-2

모든 form는 제출에 할 몇 가지 기본 동작을 필요 그래서 상쾌을 방지하기 위해, 당신은 다음과 같이 당신의 <form> 태그에 약간의 빈 작업을 추가해야합니다.

<form action="javascript:void(0);"> 
+0

그래서이 경우 사용자가 버튼 브라우저를 클릭하면 javascript : void (0); url.로 이동하려고 시도합니다. action은 이벤트를 처리 할 수있는 매개 변수가 아니기 때문입니다.그러나 사용자가 원하는 양식을 기본 양식 제출 기능없이 백엔드 스크립트에 게시하려는 경우 사용자가 원하는 작업을 수행하려면 js를 살펴보십시오. 그래서이 경우 jquery에는 다음과 같은 멋진 기능이 있습니다. .serializeArray()는 양식 요소를 가져 와서 json 객체를 빌드합니다. 그래서 한 가지는 폼 제출과 .preventDefault()를 잡는 것입니다. – num8er

관련 문제