首页 前端知识 表单插件——jquery.form.js

表单插件——jquery.form.js

2024-06-01 10:06:55 前端知识 前端哥 510 661 我要收藏

表单插件——jquery.form.js

表单插件(Form Plugin)

下载地址
:http://plugins.jquery.com/form/

文件名:jquery.form.js

version: 3.50.0-2014.02.05(最新版本)

功能:提供表单数据、重置表单项目、使用Ajax提交数据等

获取表单数据:

对于表单而言,最重要的功能莫过于获取用户填写的数据。在表单中可以通过fieldValue()直接获取表单的值;

该方法返回表单中所有"有用元素"的值组成的数组;

fieldValue()方法还可以接受一个布尔值作为参数,

false值将获取表单中所有的元素的值,而不仅仅是"有用元素"的值,还包括未选中元素(如radio:male和female都包括),

默认值true,仅包括有用元素;

var aFieldValue = $("#myForm *").fieldValue() //ID选择符后必须带*
var aFieldValue = $("#myForm :radio").fieldValue()
var aFieldValue = $(":radio").fieldValue()
var aFieldValue = $("input").fieldValue()
var aFieldValue = $(":input").fieldValue() //:input过滤选择器包括<input>、<select>、<textarea>、<button>
var aFieldValue = $("#myForm :radio").fieldValue(false)

实例:

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
function checkFiledValue(){
var aFieldValue = $("#myForm *").fieldValue(); //ID选择符后面必须要有*或过滤选择器,否则出错
//获取整个表单有用元素的值
alert(aFieldValue.join());
}
</script>

使用方法:

<input type="button" name="btn" value="FieldValue" onclick="checkFiledValue()">

另外fieldValue()方法也可以通过过滤选择器获取指定元素的值,例如

var aFieldValue = $("#myForm :radio").fieldValue();

注意:#myForm与:radio要有空格,否则不能读取

格式化表单数据:

对于Ajax异步传输而言,往往需要将传送的数据进行固定的格式化处理;如果采用javascript语句则需要遍历所有元素并获取它们的值。

表单插件提供了两个非常实用的格式化函数formSerialize()和fieldSerialize(),分别用于整个表单数据的格式化和特定元素数据的格式。

formSerialize()使用方法:

var data = $("#myForm").formSerialize(); //只能是表单ID选择符

实例:

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
function checkFormSerialize(){
var sQuery = $("#myForm").formSerialize();
//将表单中的有用值格式化
alert(sQuery); //显示格式: Radio=male&Radio=female
//后面可以接Ajax语句
//$.get(url,sQuery)
}
</script>

使用方法:

<input type="button" name="btn" value="FormSerialize" onclick="checkFormSerialize()">

同样,fieldSerialize()用于表单个别元素的格式化处理,语法与formSerialize()十分类似;

参数true和false与fieldValue()的参数含义一致;

fieldSerialize()使用方法:

var data = $("input").fieldSerialize();
var data = $(":radio").fieldSerialize();
var date = $("#myForm").fieldSerialize() ID选择符后面不能有*和类选择器,带*经过测试会出错
var data = $("#myForm :checkbox").fieldSerialize(); //Id选择符后,必须是过滤选择器
var data = $("#myForm :checkbox").fieldSerialize(false);
var data = $(":input").fieldSerialize(); //:input过滤选择器包括<input>、<select>、<textarea>、<button>

清除和重置表单数据

在HTML代码中可以通过reset来重置表单中的数据,但是它没有清除所有数据的功能。重置和清除的区别在于重置是将表单中元素的值设置为默认值。

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
$(function(){
$("input[type=button]:eq(0)").click(function(){
$("#myForm").clearForm();
});
$("input[type=button]:eq(1)").click(function(){
$("#myForm").resetForm();
});
});
</script>

HTML代码:

<input type="button" name="Clear" value="Clear">
<input type="button" name="Reset" value="Reset">

按Ajax方式提交表单

表单框架还提供了ajaxSumbit()按照Ajax的方式直接提交表单;ajaxSubmit(options),其中参数options与$.ajax(options)的参数相同

实例:

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
$(function(){
$("input[type=button]:eq(0)").click(function(){
var options = {
target: "#myTargetDiv"
};
//ajax一步上传表单
$("#myForm").ajaxSubmit(options); //等同于$("#myForm").ajaxSubmit({target: "#myTargetDiv"})
});
});
</script>

HTML代码:

<form id="myForm" name="myForm" action="15-4.php">
<table cellspacing="0" id="formTable">
<tr><td>用户</td><td><input name="Name" type="text"></td></tr>
<tr><td>密码</td><td><input name="Password" type="password"></td></tr>
<tr><td colspan="2" align="center"><input type="button" name="ajaxSub" value="AjaxSubmit">
<input type="submit" name="Sub" value="NormalSubmit">
</td></tr>
</table>
</form>
<div id="myTargetDiv"></div>

php脚本

<?php
header('Content-type: text/html;charset=utf-8');
echo $_REQUEST['Name'].":".$_REQUEST['Password'];
?>

除了ajaxSumbit(options)方法外,表单插件还提供了一个ajaxForm(options)方法,该方法通常在页面加载完成时执行,用来将表单统一Ajax化,

并且提交表单依然使用传统的Submit按钮,只不过进行的是Ajax提交;

<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
$(function(){
var options = {
target: "#myTargetDiv"
};
//表单的ajax化
$("#myForm").ajaxForm(options);
});
</script>

HTML代码:

<form id="myForm" name="myForm" action="15-4.php">
<table cellspacing="0" id="formTable">
<tr><td>用户</td><td><input name="Name" type="text"></td></tr>
<tr><td>密码</td><td><input name="Password" type="password"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="Sub" value="NormalSubmit"></td></tr>
</table>
</form>
<div>fsss gs </div>
<div id="myTargetDiv"></div>

php脚本

<?php
header('Content-type: text/html;charset=utf-8');
echo $_REQUEST['Name'].":".$_REQUEST['Password'];
?>

实例:模拟搜狐热门调查

HTNL代码:

<html>
<head>
<title>模拟搜狐热门调查</title>
<style type="text/css">
<!--
body{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
form{
margin:0px; padding:0px;
}
div{
border:1px solid #004585;
float:left; margin:6px;
background:url(bg2.jpg) repeat-x;
}
#myTargetDiv{
padding:10px; margin:0px;
border:none;
background:none;
}
input.btn{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
border:1px solid #00328f;
}
p{
margin:0px; padding:3px;
}
p.title{
color:#FFFFFF;
font-weight:bold;
text-align:center;
background:url(bg1.jpg) repeat-x;
padding:5px;
}
ul{
margin:12px; padding:0px;
list-style:none;
}
ul li{
margin:0px; padding:1px;
}
-->
</style>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript" src="jquery.form.js"></script>
<script language="javascript">
$(function(){
var options = {
//目标为调查内容本身所处的div块
target: "#myTargetDiv"
};
$("input[type=button]").click(function(){
$("#myForm").ajaxSubmit(options);
});
});
</script>
</head>
<body>
<div>
<p class="title">新闻集锦</p>
<ul>
<li>中国队0:3负于乌兹别克斯坦队,亚洲杯小组未出现</li>
<li>中国队1:1逼平泰国队,无言以对</li>
<li>再次遭淘汰,冲出亚洲梦再度破灭</li>
<li>中国队7:0大胜中国香港,依然被淘汰</li>
<li>颜面扫地,踢假球都被淘汰?</li>
<li>国足的未来让人担忧...</li>
</ul>
</div>
<div>
<p class="title">热点调查</p>
<div id="myTargetDiv">
<form id="myForm" name="myForm" action="15-6.php">
<p>你认为中国足球的前景如何?</p>
<p><label><input type="radio" name="Football" value="1">一片光明</label><br>
<label><input type="radio" name="Football" value="2">困难重重</label><br>
<label><input type="radio" name="Football" value="3">前途未卜</label></p>
<p><input type="button" name="Sub" value="提交" class="btn"> <input type="button" name="Sub" value="查看" class="btn"></p>
</form>
</div>
</div>
</body>
</html>

php代码:

<?php
header('Content-type: text/html;charset=utf-8');
$back = "";
$back .= "<p>你认为中国足球的前景如何?</p><p> </p>";
$back .= "<p>一片光明: 5%</p><p>困难重重: 61%</p><p>前途未卜: 34%</p>";
echo $back;
?>
转载请注明出处或者链接地址:https://www.qianduange.cn//article/10392.html
标签
评论
发布的文章

npmjs官网(查询依赖包)

2024-06-07 00:06:56

npx使用及原理

2024-06-07 00:06:36

npm 包管理工具

2024-06-07 00:06:33

vue 思极地图开发

2024-06-07 00:06:28

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!