使用JQuery和Ajax发布表单

时间:2010-06-08 13:09:13

标签: jquery html ajax

我想用ajax发布我的表单

我希望radiobuttons这样做(没有提交按钮)

所以点击单选按钮会导致表单提交或发布

我的php页面需要知道点击的单选按钮的名称

我的代码是否正确?因为它不起作用,我不知道为什么?

<div id="Q1"> 
<form id="Question1"  method='post'> 
<br />
<P> The sky color is..
</P><img border="0" src="images/wonder.png" width="94" height="134"/><br /><br /><br />
<input type="radio" id="option1" name="answer[1]" value="correct!"/> blue
<br />
<input type="radio" id="option1" name="answer[1]" value="false!"/> red
<br />
<input type="radio" id="option1" name="answer[1]" value="false!"/> green
<br />
<input type="radio" id="option1" name="answer[1]" value="false!"/> white
<br />
<br /> </Form>
<!-- <p id="greatp" style="display: none;"> GREAT !!<br /><br /><br /><br /><br /><br /><br /></p> -->
<img border="0" src="images/welldone3.png" width="230" height="182" id="greatp" style="display: none;"/>
<!-- <p id="sorryp" style="display: none;"> Sorry  !!<br /><br /><br /><br /><br /><br /><br /></p> -->
<img border="0" src="images/failed3.png" width="230" height="182" id="sorryp" style="display: none;"/>
<img src="images/false2.png"id="myImage1"style="display: none;"/>
<img src="images/correct2.png"id="myImage2"style="display: none;"/>
<!-- <input type= "submit" onclick="Next1()" value="Next"/> -->
<input type="image" src="images/next.png" name="image" width="80" height="30" onclick="Next1()">
</div>

jquery cod:

<script>
$(document).ready(function(){   
    $("#option1").click(function() {   

    var answer= $("#option1").value;

    var fff= $("#option1").name;

        $.ajax({   
            type: "POST",   
            url: "page2.php",   
            data: fff,  
            success: function(){   
                if(answer=='correct!')
                   {
                    $('#greatp').show();   
                    $('#myImage2').show();
                     $('#Question1').hide();

                    }
                 else
                    {
                      $('#sorryp').show();   
                      $('#myImage1').show();
                       $('#Question1').hide();
                    }


            }   
        });   
    return false;   
    });   
});  


</script>

1 个答案:

答案 0 :(得分:1)

首先,标签上的ID只能存在于一个标签中,它是唯一的标识符。这将是你的第一个问题,jQuery将使用$("#someId")抓取它找到的第一个元素。

将其更改为课程,这应该有所帮助。即。 $(".someClass")或根本不使用类,并执行$("input:radio").click...

之类的操作

对于数据,你非常接近,但我认为这不会很有效,因为你需要将数据作为键/值对发送。您可以使用查询字符串或直接json对象来实现此目的。类似的东西:

var theData = {
 name: $(this).attr("name"),
 value: $(this).val()
};

$.ajax({
  data: theData
  ...
});

这是你正在寻找的thisthis设置为单击任何单选按钮,此时您再次硬编码到ID#option1的第一个单选按钮,这是错误的。

另外,考虑将$.get$.post函数视为比$ .ajax稍微简单一些。它们也更简洁,因此可以减少代码来实现同样的目标。