/**********************************************************
处理form用方法
***********************************************************/
/**
* HTML控件中多数的取值都可以用 document.xxx.value 的方式,但一些特殊情况的取值
* 比较复杂,如radio或checkbox等,此方法为一个公用的取值方案。可以以
* controlValue(document.xxx)的形式取值,以统一的方式返回结果。具体返回的方案见
* @return中的描述。
*
* @param con 控件对象,如document.xxID等等
* @return 该控件的值,如果是text,textarea,select(单选),password返回原值
* 若radio,返回选中值,若未选返回null
* 若checkbox,select(多选)返回一个选中值的数组,若未选中返回null
* 若为text,textarea等多个同名控件的情况,返回所有控件的值的数组
* 若单个radion或checkbox的情况则返回选中时的值或者null
*/
function controlValue(con){
if (con != null) {
if (con.length == null){
//单独类型的控件
if (con.type == "text") {
return con.value;
} else if (con.type == "textarea") {
return con.value;
} else if (con.type == "password") {
return con.value;
} else if (con.type == "radio") {
if (con.checked) {
return con.value;
} else {
return null;
}
} else if (con.type == "checkbox") {
if (con.checked) {
return con.value;
} else {
return null;
}
} else {
alert("system: 不合法的控件类型[" + con.type + "]");
}
} else {
//多重类型的控件
if (con.type == "select-one") {
return con.value;
} else if (con.type == "select-multiple") {
var ops = con.options;
if (ops.length == null || ops.length == 0) {
return null;
} else {
var end = new Array();
for (var i = 0; i < ops.length; i++) {
if (ops[i].selected){
end.push(ops[i].value);
}
}
if (end.length != 0){
return end;
} else {
return null;
}
}
} else {
var alltype = con[0].type;
for (var i = 1; i < con.length; i++) {
if (con[i].type != alltype) {
alert("尚无法处理同名控件不同类型的情况!" + alltype + " and " + con[i].type);
return null;
}
}
if (alltype == "radio"
|| alltype == "checkbox") {
var end = new Array();
for (var i = 0; i < con.length; i++) {
if (con[i].checked){
end.push(con[i].value);
}
}
if (end.length == 0){
return null;
} else {
return end;
}
} else if (alltype == "text"
|| alltype == "password"
|| alltype == "textarea"
|| alltype == "select-one"
|| alltype == "select-multiple") {
var end = new Array();
for (var i = 0; i < con.length; i++) {
end.push(controlValue(con[i]));
}
return end;
} else {
alert("system: 不合法的控件类型[" + alltype + "]");
}
}
}
} else {
alert("system: 控件参数不存在!");
}
}
function form_checkOther(con, title) {
if (con.length == null || con.tagName == 'SELECT'){
if (con.value == '') {
alert('[' + title + ']的值不能为空!');
return false;
}
return true;
} else {
alert(title + '对应的第一个参数是一个数组');
return false;
}
}
function form_checkStr(con, title, required, maxlen) {
if (con.length == null){
str = con.value;
if (maxlen != null && checkStrLen(str) > maxlen) {
alert('[' + title + ']长度不能超过' + maxlen + '个字符!');
return false;
} else if (required && str.Trim() == '') {
alert('[' + title + ']的值不能为空!');
return false;
}
return true;
} else {
alert(title + '对应的第一个参数是一个数组');
return false;
}
}
function form_checkDate(con, title, required){
if (con.length != null) {
alert(title + '对应的第一个参数是一个数组');
return false;
}
str = con.value;
if (str.Trim() == "") {
if (required) {
alert('[' + title + ']的值不能为空!');
} else {
return true;
}
}
var theDate = str;
var reg = /^\d{4}-((0{0,1}[1-9]{1})|(1[0-2]{1}))-((0{0,1}[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;
var result=true;
if(!reg.test(theDate))
result = false;
else{
var arr_hd=theDate.split("-");
var dateTmp;
dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
if(dateTmp.getFullYear()!=parseFloat(arr_hd[0])
|| dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1
|| dateTmp.getDate()!=parseFloat(arr_hd[2])){
result = false
}
}
if (!result) {
alert('[' + title + ']的值必须为yyyy-MM-dd的日期!如:2007-06-15');
}
return result;
}
function form_checkNum(con, title, required) {
if (con.length == null){
str = con.value;
if (str.Trim()=='') {
if (required) {
alert('[' + title + ']的值不能为空!');
return false;
} else {
return true;
}
} else if (isNaN(str.removeComma())) {
alert('[' + title + ']的值必须为合法的数字!');
return false;
}
return true;
} else {
alert(title + '对应的第一个参数是一个数组');
return false;
}
}
function isDelete(){
return confirm('您确认要删除么?');
}
function isSubmit(){
return confirm('您确认要提交么?');
}
function isAudit(){
return confirm('您确认要审核么?');
}
function isSubmitCancel(){
return confirm('您确认要取消提交么?');
}
function isAuditCancel(){
return confirm('您确认要取消审核么?');
}
//-->
</SCRIPT>
<STYLE>
.inputtitle {
background-image: url("/copper_test/images/tan_top_bg1.gif");
color: #FFFFFF;
height: 27;
font-size: 13px;
letter-spacing: 5;
}
.title{
text-align: center;
padding: 2 5 2 5;
background-image: url("/copper_test/images/content_list_bg1.gif");
}
.ButtonCss{
font-family: "Tahoma", "宋体";
font-size:9pt; color: #ffffff;
border: 0px #000000 solid;
background-image:url(/copper_test/images/tan_btn_bg.gif);
background-color: #eae9ef;
width:71px;
height:28px;
cursor: hand;
}
</STYLE>
<OBJECT id=UMHControl1 style="LEFT: 0px; TOP: 0px" height=0 width=0 classid=clsid:C4B873F4-099F-4DD7-88D2-2EF97EFE03E8 codebase='/copper_test/pub/UMHControl.ocx'>
<PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323"><PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
<base target="_self">
<SCRIPT LANGUAGE="JavaScript">
<!--
//点击表格的时候产生事件的javascript程序
//向table中添加事件,和事件对应的方法
var layout_selectID=null;
//ID所属列数
var layout_IDIndex = 1;
//当前表格被选中的行对象
var layout_selectElement;
//是否多选
var multiple = true;
//表名
var layout_tableName = "infoTable";
//select效果
var layout_style_selected = "selected";
//普通效果
var layout_style_normal = "normal";
//悬停效果
var layout_style_over = "onit";
//双击执行事件
var layout_event_doubleclick = "parent.topFrame.onBrowse();";
//-->
</SCRIPT>
分享到:
相关推荐
// 处理Form2回传的数据或执行Form1的方法 // ... } ``` 以上就是通过委托和事件在Form1和Form2之间通信的基本步骤。这种方式的好处是解耦了两个窗体之间的依赖,使得代码更加模块化和易于维护。同时,事件机制也...
默认情况下,表单提交会引发页面重定向,使用`<form>`的`action`属性指定处理表单数据的URL,`method`属性定义请求类型(GET或POST)。 2. **阻止默认行为(Preventing Default Behavior)**:为了阻止表单提交导致...
总之,通过创建Form实例、使用公共属性或方法传递值,以及利用事件机制,可以在C#的两个独立窗体之间进行有效的数据交换。这种通信方式在多窗体应用中非常实用,可以确保数据的准确性和实时性。
在 Struts1 中,使用 LookupDispatchAction 动作可以处理含有多个 submit 的 form。但是,这种方式需要访问属性文件,还需要映射,比较麻烦。从 Struts1.2.9 开始,加入了 EventDispatchAction 动作,该类可以通过 ...
因为`Form2`中的操作是在`Form1`的UI线程之外发生的,因此可能需要使用`Invoke`或其他方法来确保跨线程的安全性。 - 此方法适用于简单的控件状态更改场景。对于更复杂的交互逻辑,可能需要考虑使用其他模式如MVVM...
FORM方法是一种较为简单且常用的方法,它对极限状态函数进行线性近似,不考虑非线性因素的影响,因此在某些情况下会引入较大误差。相比之下,SORM方法对极限状态函数进行二次展开,考虑了函数的非线性特性,从而能够...
在处理含有文件上传的`multipart/form-data`编码的表单时,使用`request.getParameter()`方法将不再适用,因为它们不能正确解析多部分数据流。相反,引入Apache Commons FileUpload库提供了强大的功能,不仅能够解析...
在这个例子中,`Form1_Paint`方法会在每次窗体需要重绘时被调用,`Graphics`对象`g`提供了各种绘制方法,如`FillRectangle`、`DrawLine`等,可以根据需求来改变窗体的颜色、绘制图形等。 然而,实际开发中,我们...
使用委托这种方式的优点在于,Form1无需直接公开其成员方法,而是通过委托的形式传递执行逻辑。这增加了代码的封装性和安全性,因为Form2只能调用通过委托传递的方法,无法访问Form1的其他内部细节。此外,委托也...
本篇文章将深入探讨三种常见的在不同Form之间传递值的方法:公共变量、窗口调用以及构造函数。 1. 公共变量 公共变量是最简单直接的方法,适用于简单数据类型的传递。首先,在一个Form中声明一个静态的公共变量,...
本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...
### JSP 页面中 JS 调用 Form 表单的值的方法 在 Web 开发中,JSP(Java Server Pages)是一种广泛使用的服务器端技术,它允许开发者将动态内容嵌入到静态 HTML 页面中。本篇文章主要介绍如何在 JSP 页面中通过 ...
首先,`FormValidation`库提供了一种灵活的方法来验证表单字段,包括但不限于必填字段检查、电子邮件格式验证、手机号码验证等。它的API允许开发者自定义验证规则,创建复杂的验证逻辑。例如,你可以设置一个规则,...
在这个主题中,我们将深入探讨jQuery Form的核心功能、使用方法以及常见应用场景。 一、jQuery Form插件简介 jQuery Form插件主要由`jquery.form.js`脚本组成,它扩展了jQuery的$.ajax方法,提供了一种更加简单...
在Form和UserControl之间的数据传递中,我们将创建一个自定义的事件,由UserControl引发,然后由Form监听并处理。以下是一些关键步骤: 1. **定义委托**:首先,定义一个委托类型,它代表了要传递的数据类型和处理...
### Jquery(Validate-Form)使用方法详解 #### 一、Jquery Validate 概述 Jquery Validate 是一个非常流行的前端表单验证插件,它由 Jörn Zaefferer 编写和维护,他是 jQuery 团队的一员,同时也是 jQuery UI 的...
例如,form2可以有一个公共方法,接受参数并更新其控件状态,然后在form1中调用这个方法。 3. **委托(Delegates)**: 委托是C#中的一个重要概念,它允许我们传递方法作为参数,或者实现事件处理。在窗体间通信时...
在本文中,我们将探讨在Spring框架下,使用AJAX与传统Form表单提交的区别,以及单方法控制器和多方法控制器的使用场景。首先,我们来看看AJAX提交与Form表单提交的基本概念。 **AJAX(Asynchronous JavaScript and ...
1. **异步表单提交**:通过使用`$.ajaxForm()`或`$.ajaxSubmit()`方法,可以实现异步表单提交。例如: ```javascript $("#myForm").ajaxForm({ success: function(response) { // 提交成功后的回调函数,response...
方法二:使用HTML5的formaction属性 HTML5为form元素引入了formaction属性,允许开发者针对单个提交按钮指定不同的提交地址。这可以帮助我们对每个按钮提交的数据进行区分,从而避免URL参数的冲突。示例代码如下: `...