2012-03-20 3 views
2

Правильно ли этот код? Я пытаюсь представить его, и я бы хотел, чтобы он отправил, если текстовая область снова будет пустой.jquery ajax form submit

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("form#submit").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below 
     var fid = $(".messag").attr("id"); 
     var val = $("#mess_ar").val(); 
     $.ajax({ 
      type: "POST", 
      url: "send_message.php", 
      data: "fid="+ fid +"&val="+ val, 
      success: function(){ 
        $("#mess_ar"). 
      } 
     }); 
     return false; 
    }); 
}): 
</script> 

Я пытаюсь загрузить это:

<form id="submit" method="POST"> 
<textarea name="mess_cont" id="mess_ar" autofocus="autofocus" cols="70" rows="5">  </textarea> 
<button id="mess_but" type="submit">Send</button> 
</form> 

Thankx ...

+0

Вам, вероятно, необходимо добавить параметр в функцию catch событий, например, '$ (" form # submit "). Submit (function (e) {' вы можете использовать 'e.preventDefault()', чтобы остановить значение по умолчанию action, submit, from happening – ianbarker

+0

@ianbarker return false, уже используется в конце. –

+0

Ничто в HTML-тексте, опубликованном вами, не имеет класса «messag», поэтому строка, которая пытается установить «fid», установит ее в «null», Кроме того, функция «success» явно неполна, вы хотите просто скрыть '.val ('')', чтобы очистить текстовое поле? – Pointy

ответ

2
​$(function(){ 
    $("form#submit").submit(function(e){ 
     e.preventDefault(); 
     var fid = $(".messag").attr("id"); 
     var val = $("#mess_ar").val(); 
     $.ajax({ 
      type: "POST", 
      url: "send_message.php", 
      data: "fid="+ fid +"&val="+ val, 
      success: function(){ 
       $("#mess_ar").val(""); 
      } 
     }); 
    }); 
});​ 

Использование

$("#submit").on('submit', function(e){...}); 

вместо

$("#submit").submit(function(e){...}); 

если вы используете последнюю версию JQuery.

+0

Почему это на submit перегружать всю страницу? –

+1

Вы добавили e.preventDefault(), пожалуйста, взгляните на это http://jsfiddle.net/GkCbD/2/ –

3

Выглядит хорошо. Чтобы очистить текстовое поле, используйте в обратном вызове ajax следующее:

$("#mess_ar").val(''); 
2

Что вы действительно намереваетесь? Он также возвращает данные в ответ? Добавьте функции для отслеживания ошибки. Сделайте что-то вроде

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("form#submit").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below 
     var fid = $(".messag").attr("id"); 
     var val = $("#mess_ar").val(); 
     $.ajax({ 
      type: "POST", 
      url: "send_message.php", 
      data: "fid="+ fid +"&val="+ val, 
      success: function(incoming_data){ 
      // ALERT incoming data if coming 
      $("#mess_ar").text(""); // DO YOUR JOB CONTINUOU 
      }, 
      error: function() { 
      alert("BROKEN REQUEST."); 
      } 
     }); 
     return false; 
    }); 

}); 
</script> 

Else, кажется, все хорошо.

+0

и я должен иметь возможность получить их в моей строке php-файла нормальный $ _POST ['']? –

+0

Ошибка или параметр? –

+0

параметр, а также ошибка на самом деле? –