`
dxking100
  • 浏览: 9272 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

jquery 动态表单数据注入(己修改)

阅读更多
1.标准的html。
2.用户可以html自写义枚举和连接数据库为select、checkbox、radio等标签进行注入。
3.服务端返数据(json格式)html自动填充。
4.数据交互时以ajax方式传递。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
jsonToSelectHtml = function(id, data) {//json转为select的html选项
var dataObj = data;
if (dataObj.data.length > 0) { //有值的时候
var isNull = $('#' + id + '').attr('isNull');
var model = '';
if (isNull == 'true') { //判断是否能为空
model += '<option></option>';
}
for ( var i = 0; i < dataObj.data.length; i++) {
model += '<option  value='+dataObj.data[i].value+'>'
+ dataObj.data[i].key + '</option>';
}
$('#' + id + '').append(model);
}
}
jsonToInputCheckBoxHtml = function(id, data) {//json转为input的checkbox html选项
var dataObj = data;
if (dataObj.data.length > 0) { //有值的时候
var model = '';
for ( var i = 0; i < dataObj.data.length; i++) {
model += '<input id='+id+' name='+id+'   type="checkbox" value='+dataObj.data[i].value+'>'
+ dataObj.data[i].key + '</input>';
}

$('#' + id + '').after(model);
$('#' + id + '').remove();
}
}
jsonToInputRadioHtml = function(id, data) {//json转为input的radio html选项
var dataObj = data;
if (dataObj.data.length > 0) {
var model = '';
for ( var i = 0; i < dataObj.data.length; i++) {
model += '<input id='+id+' name='+id+' type="radio" value='+dataObj.data[i].value+'>'
+ dataObj.data[i].key + '</input>';
}
$('#' + id + '').after(model);
$('#' + id + '').remove();
}
}
intoHtml = function(id, data) {
var tagName = $('#' + id + '')[0].tagName;
if (tagName == 'SELECT') {//判断tagName是否等于SELECT
jsonToSelectHtml(id, data);
}
if (tagName == 'INPUT') {//判断tagName是否等于INPUT
var type = $('#' + id + '').attr('type');
if (type == 'checkbox') { //判断type是否为checkbox
jsonToInputCheckBoxHtml(id, data);
}
if (type == 'radio') { //判断type是否为radio
jsonToInputRadioHtml(id, data);
}
}
}
initPage = function(id) {//为表单加载元素
var dataType = $('#' + id + '').attr('dataType');
var data = '';
if (dataType == 'json') { //读取本页面的json
data = $('#' + id + '').attr('dataValue'); //格式为:{data:[{'key':'男','value':'1'},{'key':'女','value':'2'},{'key':'其它','value':'0'}]}
data = eval("(" + data + ")");//转换为json
intoHtml(id, data);
} else if (dataType == 'dataBase') {//读取后台数据
var dataMenu = $('#' + id + '').attr('dataMenu');
$.ajax({
url : "CodeManager",
method : "POST",
data : {
'dataMenu' : dataMenu
},
error : function(respData) {
alert("加载失败,错误信息:" + respData);
},
success : function(respData) { //读取数据库json
data = eval("(" + respData + ")"); //转换为json
intoHtml(id, data);
}
});
}
}
initHtml=function(obj,formName){ //服务端返回的josn注入html中
for ( var attr in obj) {
if (typeof (obj[attr]) == 'function') {
continue;
}
var $input = $("#"+formName+"  :input[name='" + attr + "']");
var type = $input.attr("type");
if (type == "checkbox" || type == "radio") {
var avalues = obj[attr].split(",");
for ( var v = 0; v < avalues.length; v++) {
$input.each(function(i, n) {
var value = $(n).val();
if (value == avalues[v]) {
$(n).attr("checked", "checked");
}
});
}
} else {
$input.val(obj[attr]);
}
}
}
$('document').ready(function() {
var initData="sex,sex1"; //等找到jquery能读取表单的所有name时再改写
var array=initData.split(",");
for(var i=0;i<array.length;i++){
initPage(''+array[i]+'');
}

$('#saveBtn').click(function() {
$('#formValue').html($('#myform').serialize());
});
$('#saveBtn1').click(function() {
var obj = jQuery.parseJSON('{"username":"victor","sex":"2","sex2":"1,2","interesting1":"0,2","interesting3":"1"}'); //当客户端返回一串json的字符串
initHtml(obj,'myform');
});
//填冲值



});
</script>
</head>
<body>
<form ID="myform">
<table border="1" style="border: solid black;">
<tr>
<td>用户名:<input type="text" id="username" name="username" /></td>
<td>性别 <select id="sex" name="sex" dataType="json"
dataValue="{data:[{'key':'男','value':'1'},{'key':'女','value':'2'},{'key':'其它','value':'0'}]}"
isNull="true">
</select>
</td>
</tr>
<tr>
<td>兴趣 <input id="interesting1" name="interesting1"
type="checkbox" dataType="json"
dataValue="{data:[{'key':'篮球','value':'1'},{'key':'足球','value':'2'},{'key':'乒乓球','value':'0'}]}"/>
</td>
<td>兴趣3 <input id="interesting3" name="interesting3"
type="radio" dataType="dataBase" dataMenu="性别" />
</td>
</tr>
<tr>
<td><input type="button" id="saveBtn" value="提交" />
<input type="button" id="saveBtn1" value="读取客户端返回的数据" /></td>
</tr>
</table>
</form>
<div id="formValue"></div>

</body>
</html>
分享到:
评论

相关推荐

    SSH+jquery

    在CRUD操作中,它接收表单数据,调用服务层方法,然后返回相应的视图。 **Hibernate框架**是Java领域的一个持久化框架,主要用于简化数据库操作。它提供了ORM(对象关系映射)功能,使得开发者可以用Java对象来操作...

    Jquery表单注册

    4. 获取表单数据:使用`.serialize()`方法获取表单数据,如`var formData = $("#myForm").serialize();`。 5. Ajax提交:使用`.ajax()`或`.post()`发送数据到服务器,如`$.ajax({url: "register.php", type: "POST",...

    jquery php+mysql 表格双击可编辑,表单失去焦点自动提交保存数据

    双击编辑功能提高了用户体验,使得用户可以直接在表格中修改数据。 3. **自动保存**:表单元素失去焦点(如点击其他地方或按下回车)时,jQuery会触发一个事件,用于收集当前编辑的内容,并发送Ajax请求到服务器。...

    jQuery表单验证

    - **动态添加/移除验证**:在运行时根据需求动态修改验证规则。 - **错误消息显示**:可以控制错误消息的显示位置和样式,如使用`errorPlacement`回调函数。 ### 6. 其他验证库 除了jQuery Validation Plugin,...

    jquery过滤特殊字符’,防sql注入的实现方法

    SQL注入是一种常见的网络安全威胁,攻击者通过输入恶意的SQL语句来操纵数据库,获取、修改或删除敏感数据。以下是一个实际的jQuery实现,展示了如何在前端进行用户输入验证,确保输入的数据不会引发SQL注入。 首先...

    jquery链接数据库登陆案例

    1. 表单验证:在用户提交数据前,jQuery可以实时验证输入信息,例如,检查邮箱格式是否正确,手机号码是否符合规则等,使用`$.trim()`去除空格,`$.isNumeric()`判断是否为数字等。 2. 提示信息:使用`$(element)....

    spring-mvc-jquery.zip_jquery_mvc jquery_spring jquery_spring mvc

    1. **异步数据加载**:使用jQuery的$.ajax或$.getJSON函数,向Spring MVC的Controller发送请求,获取JSON格式的数据,然后动态地更新页面内容。 2. **表单验证**:在客户端使用jQuery进行表单验证,如果验证失败,...

    jQuery Spring MVC

    2. **数据绑定**:Spring MVC 支持表单数据自动绑定到模型对象,而jQuery 可以方便地操作表单元素,实现前后端数据同步。 3. **视图解析**:Spring MVC 通过`ViewResolver`处理视图解析,jQuery 则负责客户端的页面...

    用JQuery用户注册验证小例子

    用户注册验证是网站安全的基础,它可以防止无效数据的提交,保护系统免受恶意攻击,如SQL注入,同时也能提升用户体验,避免因输入错误导致的提交失败。 三、JQuery验证实现步骤 1. **获取表单元素**:使用JQuery的...

    登录注册jquery

    在登录注册系统中,我们通常需要处理表单数据。jQuery的`.serialize()`方法可以将表单元素的值转换为URL编码的字符串,便于通过Ajax发送到服务器。而`.submit()`函数可以监听表单提交事件,阻止默认的页面刷新行为,...

    jquery 就地编辑php版

    1. 输入验证:前端验证是不够的,PHP后端也应进行严格的数据验证,防止恶意数据注入。 2. CSRF防护:使用令牌防止跨站请求伪造攻击,确保编辑操作的合法性。 3. 错误处理:提供清晰的错误信息,便于调试和用户体验...

    精通jquery(中文第二版)_扫描版_以及源代码

    学习《精通jQuery(中文第二版)》,不仅可以提升JavaScript编程技能,还能使开发者在网页动态效果和用户体验上有所突破,为Web应用开发注入更多活力。通过深入阅读和实践,读者将能够熟练运用jQuery,提升开发效率...

    618数据展示系统.zip_在线报名系统_报名系统_数据展示_表单提交系统

    【表单提交系统】是在线报名系统的关键组成部分,它负责处理用户的提交请求,验证表单数据的完整性和合法性,如检查必填项、格式正确性等。通过JavaScript库(如`jquery-1.7.2.min.js`和`jquery.min.js`)可以实现...

    jdemo是jquery的项目应用

    - 数据展示:使用jQuery获取服务器数据(如列表、表格),动态加载到页面。 - 表单提交:jQuery负责表单验证和数据序列化,Struts处理业务逻辑,Hibernate执行数据库操作。 - 动画效果:利用jQuery的动画方法增强...

    php与jquery校验用户名

    PHP是一种服务器端的脚本语言,常用于处理HTML表单数据、生成动态网页内容以及数据库交互。而jQuery则是一种高效的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。当我们需要在客户端和服务器端...

    基于jquery-easyui的用户管理系统实例

    JavaScript文件,特别是那些引用了jQuery和EasyUI的,会实现页面的动态行为,比如数据加载、表单验证、AJAX请求等。PHP文件则处理后端逻辑,如处理HTTP请求、连接数据库、执行SQL语句、返回JSON或HTML响应等。 在...

    jsp jquery

    `jQuery easyUI`是一个基于jQuery的前端框架,它集成了jQuery UI的各种组件,如对话框、表单、表格等,使得开发者能快速构建出美观且功能丰富的Web应用。 在增删改查操作中,通常会使用`jQuery`的Ajax方法发送异步...

    SSH+JqueryUI+MySQL+权限管理

    总结来说,"SSH+JqueryUI+MySQL+权限管理"项目是一个基于Java Web的系统,使用Struts2处理请求,Spring管理依赖和事务,Hibernate进行数据操作,jQuery UI提升前端交互,以及MySQL作为数据存储。同时,系统包含了...

    jquery easy ui 增改删 表格

    - 在实际应用中,必须对前端提交的数据进行验证和过滤,防止 SQL 注入等安全问题。在后端脚本中,应使用预编译语句或参数化查询来确保安全。 通过以上步骤,我们可以构建一个基本的 CRUD 应用,使用 jQuery Easy ...

Global site tag (gtag.js) - Google Analytics