Я хочу опубликовать форму с помощью jquery, но мой код не работает. после отправки моя страница обновится. В чем проблема? ждите помощи.

Код jquery

function submitForm() {
        var par1 = $('input[@name=my_radio][@checked]').val();
        var par2 = $('input[@name=title]').val();
        var par3 = $('input[@name=content]').val();
            $.ajax({
                url: "r8.php", 
                dataType: "html",
                type: 'POST', 
                data: "submit=" + par1 + "&title=" + par2 + "&content=" + par3, 
                success: function(data){ 
                    $("#response").html(data);
                    $('input[@name=title]').html('');
                    $('input[@name=content]').html('');
                }
            });

        return false;
    } 

Html-код:

<form method="post" id="post_form" name="post_form" onsubmit="return submitForm();">
    <label>1: <input type="radio" name="my_radio" value="1" checked /></label>   
    <label>2: <input type="radio" name="my_radio" value="2" /></label> 
    <input id="title" name="title" type="text">
    <input id="content" name="content" type="text">
    <input type="submit" name="my_submit" id="my_submit" value="submit" />
</form>
<div id="response"></div>

И код r8.php

<?php
if($_POST['submit']!=''){ 

    echo $_POST['title']."|".$_POST['content']."|".$_POST['submit']."|".time(); 

}
?>
1
cj333 28 Авг 2011 в 11:51

2 ответа

Лучший ответ

В вашей функции submitform () java script получите такие значения:

var par1 = $('input:radio[name=my_radio]:checked').val()
var par2 = $('#title').val();
var par3 = $('#content').val();

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

РЕДАКТИРОВАТЬ:

Что вам нужно сделать, так это использовать один из методов ajax для публикации вашей формы и вставить вывод в элемент в обратном вызове успеха. Например:

$("#my_submit").click(function() {
    $.post($("#post_form").attr("action"), $("#post_form").serialize(), function(html) {
        $("div.post_form").html(html);
    });
    return false; // prevent normal submit
});

Взгляни на

http://api.jquery.com/jQuery.post/ а также http://api.jquery.com/jQuery.ajax/

Укажите r8.php в атрибуте действия формы. т.е.

<form method="post" id="post_form" name="post_form" action="r8.php" />

Надеюсь это поможет.

0
AlphaMale 28 Авг 2011 в 08:49

Возникла проблема с вашими селекторами .. удалите "@" из селектора, и он будет работать ..

 <script language="javascript">
 function submitForm() {

             var par1 = $('input[name=my_radio][checked]').val();
         var par2 = $("input[name=title]").val();
         var par3 = $("input[name=content]").val();

         $.ajax({
                 url: "r8.php", 
                 dataType: "html",
                 type: 'POST', 
                 data: "submit=" + par1 + "&title=" + par2 + "&content=" + par3, 
                 success: function(data){ 
                     $("#response").html(data);
                     $("input[name=title]").html("");
                     $("input[name=content]").html("");
                                          }
                  });

                   return false;
               } 

     </script>
0
Mithun Satheesh 28 Авг 2011 в 08:36