Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

jQuery获取表单项目以及AJAX应用

Posted on 2008-10-01 11:13  analyzer  阅读(2111)  评论(4编辑  收藏  举报

1.假如我们有如下页面

 

Code
<input type="text" name="textname" id="text_id" value="">
<!--其余的请自行添加.重要的是要有TYPE.NAME.ID等,一般情况这些都是有的-->

 

2.下面来看怎么取得FORM中的各种值等等;

 

Code
function get_form_value(){
/*获得TEXT.AREATEXT的值*/
var textval = $("#text_id").attr("value");//或者
var textval = $("#text_id").val();
/*获取单选按钮的值*/
var valradio = $("input[@type=radio][@checked]").val();
/*获取复选框的值*/
var checkboxval = $("#checkbox_id").attr("value");
/*获取下拉列表的值*/
var selectval = $('#select_id').val();
}

 

3.另外对表单的其他处理:

 

Code
//控制表单元素:
//
文本框,文本区域:
$("#text_id").attr("value",'');//清空内容
$("#text_id").attr("value",'test');//填充内容
//
多选框checkbox:
$("#chk_id").attr("checked",'');//未选中的值
$("#chk_id").attr("checked",true);//选中的值
if($("#chk_id").attr('checked')==undefined) //判断是否已经选中
//
单选组radio:
$("input[@type=radio]").attr("checked",'10');//设置value=10的单选按钮为当前选中项
//
下拉框select:
$("#select_id").attr("value",'test');//设置value=test的项目为当前选中项
$("<option value='test'>test</option><option value='test2'>test2</option>").appendTo("#select_id")//添加下拉框的option
$("#select_id").empty();//清空下拉框

 

4.jQuery的AJAX应用

Xhtml文件如下:

 

Code
<div id="result" style="backgroundrange;border:1px solid red;width:300px;height:400px;"></div>
<form id="formtest" action="" method="post">
<p><span>输入姓名:</span><input type="text" name="username" id="input1" /></p>
<p><span>输入年龄:</span><input type="text" name="age" id="input2" /></p>
<p><span>输入性别:</span><input type="text" name="sex" id="input3" /></p>
<p><span>输入工作:</span><input type="text" name="job" id="input4" /></p>
</form>
<button id="send_ajax">提交</button>
<button id="test_post">POST提交</button>
<button id="test_get">GET提交</button>

 

接着引入jQuery

 

Code
<script type="text/javascript" src="../jquery.js"></script>

 

再接着构建AJAX,jQuery有个好处,不需要在XHTML中夹杂着JS代码来触发事件了,可以直接封装在JS文件中

 

Code
<script type="text/javascript">
//$.ajax()方式
$(document).ready(function (){
$(
'#send_ajax').click(function (){ //直接把onclick事件写在了JS中,而不需要混在XHTML中了
var params=$('input').serialize(); //序列化表单的值,与prototype中的form.serialize()相同
$.ajax({
url :
'ajax_test.php', //后台处理程序
type:'post', //数据发送方式
dataType:'json', //接受数据格式
data:params, //要传递的数据
success:update_page //回传函数(这里是函数名)
});
});
});
function update_page (json) { //回传函数实体,参数为XMLhttpRequest.responseText
var str="姓名:"+json.username+"";
str
+="年龄:"+json.age+"";
str
+="性别:"+json.sex+"";
str
+="工作:"+json.job;
$(
"#result").html(str);
}
//$.post()方式:
$(function (){//$(document).ready(function (){ 的简写
$('#test_post').click(function (){
$.post(
'ajax_test.php',
{username(
'#input1').val(),age('#input2').val(),sex('#input3').val(),job('#input4').val()},
function (data){ //回传函数
var myjson='';
eval(
'myjson='+data+';');
$(
'#result').html("姓名:"+myjson.username+"
工作:
"+myjson['job']);
});
});
});
//$.get()方式:
$(function (){
$(
'#test_get').click(function (){
$.get(
'ajax_test.php',
{username(
"#input1").val(),age("#input2").val(),sex("#input3").val(),job("#input4").val()},
function (data) {
var myjson='';
eval(
"myjson="+data+";");
$(
"#result").html(myjson.job);
});
});
});
</script>

 

后段的php处理代码如下:

 

Code
<?php
$arr = $_POST; //若以$.get()方式发送数据,则要改成$_GET.或者干脆_REQUEST
$myjson=json_encode($arr);
echo $myjson;
?>
我要啦免费统计