闲来无事,自己写了个JS插件,需求就是动态NEW一个表单,表括表单中的一些INPUT元素,都是传参定义出来的。(跟EXT的思路是很像的。)
表单做好后,最后当然是要提交啦,在提交的时候需要做一些验证,思路有好几种,我用了一种最简单的思路。如下:
插件在表单元素定义时传参如下:
var input = {type : 'input',id: 'trdate',value : '',name : 'trdate',isnull : 'false', };
这样传参后,页面上的input对应的就是:
<input id="trdate" class="form-control" type="text" name="trdate" value="" isnull="false">
此时,我给INPUT表单自定义了一个属性isnull,用来标记是否可以为空,如果isnull="false",那表明不能为空。
所以在表单提交的时候,我们要对isnull进行验证。
--------------------------------------------------------
具体DEMO如下:
比如我们已经在页面中new出一个form对象,JSP的代码如下:
<form id="ajaxform" action="xxx">
<input type="text" isnull="false" id="trdate" name="trdate" value=""/>
<input type="text" isnull="false" id="name" name="name" value=""/>
<input type="hidden" id="realname" name="realname" value=""/>
<input type="button" onclick="submitform('ajaxform');"/>
</form>
<script type="text/javascript">
submitform(formid){
//验证以及提交表单
}
</script>
我的需求就是:若不根据input的id去取input元素,现只有一个已知ID,那就是formid,怎么去取input呢?
我第一次写的代码如下:
submitform(formid){
var inputs = $("#"+formid);
for(var i = 0;i<inputs.length;i++){
var inputhtml = inputs[i];//打印出来的是:Object HTMLInputElement元素
if(inputhtml.getAttribute("type") == "hidden"){
continue;
}
if(inputhtml.getAttribute("isnull") == "false"){
var input = $("#" + inputhtml.getAttribute("id"));
if(input.val() == ""){
alert(msg_isnotnull);
return;
break;
}
}
}
$("#"+formid).submit();
}
思路比较直接:
1、根据form,找到form对象下的所有input表单,不管type为text还是hidden
2、排除掉不需要验计的hidden表单
3、取得isnull为false的表单,取得value的值,若为空,则不让提交表单。
注:JS的Object HTMLInputElement元素,可查API:[url]http://krook.org/jsdom/HTMLInputElement.html [/url]
input的getAttribute方法,可以取出表单的各种属性,如id,type,name,value
这里,特别要注意下value;取出来的是我们页面上定义的value值,而不是我们实时输入的value值,比如我们用idinput.getAttribute("value"),取出来的永远是个空字符串。
实时输入的value值可通过$("#"+idinput.getAttribute("id")).val()取得。即先取得INPUT对象,再用JQUERY的val()方法取。
研究了JQUERY选择器后,第二次优化如下:
submitform(formid){
$.each(form.find("input[isnull='false']"), function(i,val){
if(val.value == ""){
alert(msg_isnotnull);
return;
return false;
}
});
$("#"+formid).submit();
}
此次,代码清晰多了,可见JQUERY的简洁与实用。
1、form.find("input[isnull='false']"表示取得form下isnull为false的所有表单
2、jquery的each()方法的运用:$.each($("input:hidden"), function(i,val){ })
注:
jquery each循环,要实现break和continue的功能:
break----用return false;
continue --用return ture;
---------------------------------------
jQuery 参考手册 - 选择器:
http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp
JS dom 参考手册:
http://krook.org/jsdom/HTMLInputElement.html
分享到:
相关推荐
本篇文章将深入探讨jQuery选择器的入门知识,并通过实际的小案例帮助你理解和应用这些选择器。 jQuery选择器是jQuery库的核心部分,它们是用于在HTML文档中查找元素的工具。jQuery支持多种CSS选择器,包括基本选择...
然而,即便如此成熟的库,也难免存在一些已知的问题和限制,其中之一就是我们今天要探讨的"jQuery选择器的一个Bug"。 首先,我们要理解jQuery选择器的基本原理。jQuery基于CSS选择器,它允许开发者通过类似CSS的...
`jQuery ColorPicker`是一个轻量级且功能强大的解决方案,特别适合前端开发者用于提升网站的色彩选择体验。 ### 1. jQuery库 `jQuery`是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互...
jQuery选择器总结,网上下载的,非原创的,仅供参考,学习学习。
jQuery支持多种类型的选择器,包括基本选择器(如ID选择器、类选择器、标签选择器)、属性选择器、伪类选择器以及组合选择器等。这些选择器可以灵活地帮助我们定位页面中的特定元素,进行操作和样式设置。 该插件的...
【jQuery学习资料之万能的选择器】 jQuery是一个强大的JavaScript库,极大地简化了DOM操作、事件处理和动画制作。其中,选择器是jQuery的核心功能之一,它允许开发者高效地选取页面上的HTML元素,从而进行进一步的...
jquery选择器功能无比强大,用好了可以起到事半功倍的效果,这个资源把选择器单独列出来,便于方便查找
jquery入门教程 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery 包装集 从零开始学习jQuery (四) 使用jQuery 操作元素的属性与样式 从零开始...
学习jQuery选择器不仅能够提高网页动态效果的实现效率,还能使代码更加简洁易读。在实际开发中,可以结合使用多种选择器来定位和操作复杂的DOM结构。例如,你可以使用类选择器结合ID选择器来选取特定的元素,或者...
"jQuery日期选择器"是这样一个轻量级且易用的工具,它允许用户通过友好的图形界面来选择日期,极大地提高了数据输入的便捷性。 ### jQuery与日期选择器 jQuery是一个强大的JavaScript库,简化了HTML文档遍历、事件...
初步学习jQuery的概念及选择器 jQuery是一个功能强大且流行的JavaScript库,它提供了许多实用的方法来简化网站开发和交互设计。 本文将对jQuery的基本概念和选择器进行介绍,旨在帮助读者快速掌握jQuery的基础知识...
学习jQuery颜色选择器源码,我们可以深入理解以下知识点: 1. jQuery选择器和DOM操作:如何使用jQuery选择特定的HTML元素,如`.addClass()`, `.removeClass()`, `.val()`等方法来改变元素的样式和内容。 2. 事件...
本资源"jQuery基于citypicker四级联动菜单选择器代码.zip"提供了一个实现城市选择器功能的jQuery插件,适用于网页表单,尤其是需要用户输入详细地址的场景。 首先,我们来理解一下什么是四级联动菜单。在网页设计中...
通过思维导图对知识进行梳理,以便记忆
RIA 应用开发之 jQuery 选择器 jQuery 选择器是 RIA 应用开发中一个非常重要的概念, jQuery 选择器是 jQuery 库中的一部分,主要用来选择和操作 HTML 文档中的元素。下面是 jQuery 选择器的详细知识点: 1. ...
JQuery入门&选择器
jquery 城市选择器代码
jQuery 选择器 jQuery 入门
4. **初始化插件**:在页面加载完成后(通常在`$(document).ready()`函数中),使用jQuery选择器找到元素并调用颜色选择器插件的初始化方法,设置相关配置,如预设颜色、回调函数等。 5. **事件监听**:你可以监听...
jquery基本过滤选择器举例、代码、html、可直接运行、学习jquery入门篇