`
yuexj
  • 浏览: 8772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

处理form用的方法

阅读更多


/**********************************************************
 处理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>

分享到:
评论

相关推荐

    Form1调用Form2 ,From2回传值或调用Form1内的方法。

    // 处理Form2回传的数据或执行Form1的方法 // ... } ``` 以上就是通过委托和事件在Form1和Form2之间通信的基本步骤。这种方式的好处是解耦了两个窗体之间的依赖,使得代码更加模块化和易于维护。同时,事件机制也...

    form表单的异步回调方法

    默认情况下,表单提交会引发页面重定向,使用`&lt;form&gt;`的`action`属性指定处理表单数据的URL,`method`属性定义请求类型(GET或POST)。 2. **阻止默认行为(Preventing Default Behavior)**:为了阻止表单提交导致...

    C# form1 ,form2 互相传值

    总之,通过创建Form实例、使用公共属性或方法传递值,以及利用事件机制,可以在C#的两个独立窗体之间进行有效的数据交换。这种通信方式在多窗体应用中非常实用,可以确保数据的准确性和实时性。

    java处理一个form多个submit

    在 Struts1 中,使用 LookupDispatchAction 动作可以处理含有多个 submit 的 form。但是,这种方式需要访问属性文件,还需要映射,比较麻烦。从 Struts1.2.9 开始,加入了 EventDispatchAction 动作,该类可以通过 ...

    Form2调用Form1控件的解决方案

    因为`Form2`中的操作是在`Form1`的UI线程之外发生的,因此可能需要使用`Invoke`或其他方法来确保跨线程的安全性。 - 此方法适用于简单的控件状态更改场景。对于更复杂的交互逻辑,可能需要考虑使用其他模式如MVVM...

    可靠性分析的FORM和SORM组合法

    FORM方法是一种较为简单且常用的方法,它对极限状态函数进行线性近似,不考虑非线性因素的影响,因此在某些情况下会引入较大误差。相比之下,SORM方法对极限状态函数进行二次展开,考虑了函数的非线性特性,从而能够...

    解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法 ?

    在处理含有文件上传的`multipart/form-data`编码的表单时,使用`request.getParameter()`方法将不再适用,因为它们不能正确解析多部分数据流。相反,引入Apache Commons FileUpload库提供了强大的功能,不仅能够解析...

    form重绘的方法

    在这个例子中,`Form1_Paint`方法会在每次窗体需要重绘时被调用,`Graphics`对象`g`提供了各种绘制方法,如`FillRectangle`、`DrawLine`等,可以根据需求来改变窗体的颜色、绘制图形等。 然而,实际开发中,我们...

    C#使用委托(delegate)实现在两个form之间传递数据的方法

    使用委托这种方式的优点在于,Form1无需直接公开其成员方法,而是通过委托的形式传递执行逻辑。这增加了代码的封装性和安全性,因为Form2只能调用通过委托传递的方法,无法访问Form1的其他内部细节。此外,委托也...

    C# 不同Form之间值的传递

    本篇文章将深入探讨三种常见的在不同Form之间传递值的方法:公共变量、窗口调用以及构造函数。 1. 公共变量 公共变量是最简单直接的方法,适用于简单数据类型的传递。首先,在一个Form中声明一个静态的公共变量,...

    NodeJs form-data格式传输文件的方法

    本文介绍了Node Js 使用KOA处理form-data格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件...

    jsp页面js调用form表单的值的方法

    ### JSP 页面中 JS 调用 Form 表单的值的方法 在 Web 开发中,JSP(Java Server Pages)是一种广泛使用的服务器端技术,它允许开发者将动态内容嵌入到静态 HTML 页面中。本篇文章主要介绍如何在 JSP 页面中通过 ...

    使用FormValidation进行表单验证

    首先,`FormValidation`库提供了一种灵活的方法来验证表单字段,包括但不限于必填字段检查、电子邮件格式验证、手机号码验证等。它的API允许开发者自定义验证规则,创建复杂的验证逻辑。例如,你可以设置一个规则,...

    jquery form jquery.form.js

    在这个主题中,我们将深入探讨jQuery Form的核心功能、使用方法以及常见应用场景。 一、jQuery Form插件简介 jQuery Form插件主要由`jquery.form.js`脚本组成,它扩展了jQuery的$.ajax方法,提供了一种更加简单...

    Form中显示Usercontrol通过委托事件方法实现Form与Usercontrol的数据传递

    在Form和UserControl之间的数据传递中,我们将创建一个自定义的事件,由UserControl引发,然后由Form监听并处理。以下是一些关键步骤: 1. **定义委托**:首先,定义一个委托类型,它代表了要传递的数据类型和处理...

    Jquery(Validate-Form)使用方法[张振华.Jack]

    ### Jquery(Validate-Form)使用方法详解 #### 一、Jquery Validate 概述 Jquery Validate 是一个非常流行的前端表单验证插件,它由 Jörn Zaefferer 编写和维护,他是 jQuery 团队的一员,同时也是 jQuery UI 的...

    form调用form

    例如,form2可以有一个公共方法,接受参数并更新其控件状态,然后在form1中调用这个方法。 3. **委托(Delegates)**: 委托是C#中的一个重要概念,它允许我们传递方法作为参数,或者实现事件处理。在窗体间通信时...

    Spring下的AJAX和Form表单提交及单/多方法控制器比较

    在本文中,我们将探讨在Spring框架下,使用AJAX与传统Form表单提交的区别,以及单方法控制器和多方法控制器的使用场景。首先,我们来看看AJAX提交与Form表单提交的基本概念。 **AJAX(Asynchronous JavaScript and ...

    jquery.form.js和使用说明

    1. **异步表单提交**:通过使用`$.ajaxForm()`或`$.ajaxSubmit()`方法,可以实现异步表单提交。例如: ```javascript $("#myForm").ajaxForm({ success: function(response) { // 提交成功后的回调函数,response...

    js的form表单提交url传参数(包含+等特殊字符)的两种解决方法

    方法二:使用HTML5的formaction属性 HTML5为form元素引入了formaction属性,允许开发者针对单个提交按钮指定不同的提交地址。这可以帮助我们对每个按钮提交的数据进行区分,从而避免URL参数的冲突。示例代码如下: `...

Global site tag (gtag.js) - Google Analytics