<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>通过JS连续把控件框的值合并并多次添加到文本区</title>
</head><body>            <TABLE cellSpacing=1 cellPadding=4 width=936  height="144" id="table1"  >
              <tr>
                <TD  width=95 height=25 align="right" class="a2">
开始时间:</TD>
                <TD  width=404 height=25 class="a3">
<input type="checkbox" name="jieguan1" id="jieguan1" value="1" alt="周一">周一|
<input type="checkbox" name="jieguan2" id="jieguan2" value="2" alt="周二">周二|
<input type="checkbox" name="jieguan3" id="jieguan3" value="3" alt="周三">周三|
<input type="checkbox" name="jieguan4" id="jieguan4" value="4" alt="周四">周四|
<input type="checkbox" name="jieguan5" id="jieguan5" value="5" alt="周五">周五|
<input type="checkbox" name="jieguan6" id="jieguan6" value="6" alt="周六">周六|
<input type="checkbox" name="jieguan7" id="jieguan7" value="7" alt="周天">周天
</TD>             
              </tr>
              <tr>
                <TD  width=95 height=25 align="right" class="a2">
截止时间:</TD>
                <TD  width=404 height=25 class="a3">
<input type="checkbox" name="kaichuan1" id="kaichuan1" value="1" alt="周一">周一|
<input type="checkbox" name="kaichuan2" id="kaichuan2" value="2" alt="周二">周二|
<input type="checkbox" name="kaichuan3" id="kaichuan3" value="3" alt="周三">周三|
<input type="checkbox" name="kaichuan4" id="kaichuan4" value="4" alt="周四">周四|
<input type="checkbox" name="kaichuan5" id="kaichuan5" value="5" alt="周五">周五|
<input type="checkbox" name="kaichuan6" id="kaichuan6" value="6" alt="周六">周六|
<input type="checkbox" name="kaichuan7" id="kaichuan7" value="7" alt="周天">周天
</TD>             
              </tr>
              <tr>
                <TD  width=95 height=25 align="right" class="a2">
名字:</TD>
                <TD  width=404 height=25 class="a3">
<select name="p_qc0"  ID="p_qc0" size="1">
&nbsp;
<option>请选择名字</option>
<option value="李华">李华</option>
<option value="关羽">张飞</option>
<option value="关羽">关羽</option>
<option value="关羽">小白</option>
</select>&nbsp;<input type="text" name="T3" id="T3" size="9">  <input type="button" value="新增" onclick="add()"></TD>             
              </tr>
              <tr>
                <TD  width=95  height=25 align="right" class="a2"><SPAN 
                  >备注:</SPAN><p>
<span class="main1">(备注信息)</span></p>
<p> </TD>
                <TD  width=824 height=25 class="a3"><textarea name="MemoBox"  ID="MemoBox" rows="4" name="p_re" cols="40" style="font-family: 新细明体, 宋体, Arial; font-size: 14px;background-color:#f3f3f3;border:1 solid black"  onMouseOver = "this.style.backgroundColor = '#E5F0FF'" onMouseOut = "this.style.backgroundColor = ''"></textarea>&nbsp; 
.</TD>
              </tr>
              </TABLE>
        
</body><SCRIPT LANGUAGE="JavaScript">
<!--
function add()
{
var adddot=false;
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",document.getElementById("p_qc0").value);
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd","/");
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",document.getElementById("T3").value);
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd","/");
for (var oNum=1;oNum<8;oNum++)
{
if (document.getElementById("jieguan"+oNum).checked)
{
if (adddot) document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",","); 
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",document.getElementById("jieguan"+oNum).alt);
adddot=true;
}}
adddot=false;
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd","/");
for (var oNum=1;oNum<8;oNum++)
{
if (document.getElementById("kaichuan"+oNum).checked)
{
if (adddot) document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",",");
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd",document.getElementById("kaichuan"+oNum).alt);
adddot=true;
}
}
document.getElementById("MemoBox").insertAdjacentText("BeforeEnd","\n");}
//-->
</SCRIPT></html>要求:每次点新增时,如果没有选择下拉框或者没有选择复选框,或文本匡没有输入内容时,窗口提示没有输入,无法新增内容.

解决方案 »

  1.   

    可以试试jquery的一个插件,自动完成必输项、数字、字符串、邮件等验证,当然更强大的是自己可以去扩展它http://bassistance.de/jquery-plugins/jquery-plugin-validation/
      

  2.   

    <script>
    function Trim(bd)   
      {   
      return   bd.replace(/(^\s*)|(\s*$)/g,   "");   
      }   
        
      function  LTrim (bd)   
      {   
      return   bd.replace(/(^\s*)/g,   "");   
      }   
        
      function RTrim  (bd)   
      {   
      return   bd.replace(/(\s*$)/g,   "");   
      } 
      //判断字符串是否为空
    function isNull( str ){
    if ( str == "") 
    return true;
    var regu = "^[ ]+$";
    var re = new RegExp(regu);
    return re.test(str);

    function isemail (s)
    {
    s = s.toLowerCase()
    var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|name|NAME)$";
    var re = new RegExp(regu);
             if (s.search(re) != -1) {
                   return true;
             } else {
                   window.alert ("请输入有效合法的E-mail地址 !");
                   return false;
             }
    }
    function opencheck(username){
    //var scw = screen.width/2-225;
    //var sch = screen.height/2-175;
    if(!isNull(username)){
    createXMLHttpRequest();
    var url ="<%=request.getContextPath()%>/jsp/HR/HR_CheckName.jsp?username="+username;
    xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = callback;
        xmlHttp.send(null);
    }
    return false;
    }function callback(){
    if (xmlHttp.readyState == 4) {
                    if (xmlHttp.status == 200) {
                    showview(xmlHttp.responseText);
                    }
                }
    }function createXMLHttpRequest(){
    if (window.ActiveXObject) {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    else if (window.XMLHttpRequest) {
     xmlHttp = new XMLHttpRequest();                
    }}function showview(tage){
    if(tage==1){
    document.getElementById('showsfont').innerHTML ='<font color=red>用户名已存在,请重新输入</font>';
    }else{
    document.getElementById('showsfont').innerHTML ='<font color=#00FF00red>用户名未被使用</font>';
    }
    }
    function isSubmitAjax(username){
    if(!isLegalUser()){
    document.getElementById('showsfont').innerHTML ='<font color=#00FF00red>用户名包含非法字符或中文</font>';
    }else{
    opencheck(username);
    }
    }
    function isLegalUser(){
    if(view_form.user_name.value.indexOf(",")!=-1){
    return false ;
    }
    if(view_form.user_name.value.indexOf("'")!=-1){
    return false;
    }
    var china=/^\w{0,}$/;
    if(!china.test(view_form.user_name.value)){
    return false;
    }
    if(view_form.user_name.value.indexOf(".")!=-1){
    return false;
    }
    if(view_form.user_name.value.length>30) {
    return false;
    }
    return true;
    }
    function validation(){
    if(checknull(view_form.user_name.value,"请填写用户名")==1){
    view_form.user_name.focus();
    return ;
    }
    if(view_form.user_name.value.indexOf(" ")!=-1){
    alert("用户名不能包括空格!");
    view_form.user_name.focus();
    return ;
    }
    if(view_form.user_name.value.indexOf(",")!=-1){
    alert("用户名不能包括 , !");
    view_form.user_name.focus();
    return ;
    }
    if(view_form.user_name.value.indexOf("'")!=-1){
    alert("用户名不能包括 ' !");
    view_form.user_name.focus();
    return ;
    }
    if(view_form.user_name.value.indexOf(".")!=-1){
    alert("用户名不能包括 . !");
    view_form.user_name.focus();
    return ;
    }
    if(view_form.user_name.value.length>30)
    {
    alert("您输入的名字太长!不能大于30");
    view_form.user_name.focus();
    return ;
    }
    if(checknull(view_form.user_password.value,"请填写密码")==1){
    view_form.user_password.focus();
    return ;
    }
    if(view_form.user_password.value.length>20){
    alert( "密码太长!最长为20");
    view_form.user_password.focus();
    return ;
    }
    if(compare(view_form.user_password.value,view_form.password_repeat.value,"请正确重复密码")==1){
    view_form.password_repeat.focus();
    return ;
    }
    if(view_form.user_email.value.length>50)
    {
    alert("您输入的Email太长!不能大于50");
    return ;
    }
    if(checknull(view_form.user_email.value,"请填写电子邮件")==1 || !isemail(view_form.user_email.value)){
    view_form.user_email.focus();
    return false;
    }
    if(isNull(view_form.user_idcard.value)){
    alert("身份证号码不能为空");
    view_form.user_idcard.focus();
    return ;
    }
    var returnMsg=checkIdcard(view_form.user_idcard.value);

    if( returnMsg!="验证通过!") {
    alert(returnMsg);
    view_form.user_idcard.focus();
    return ;
    }

    document.view_form.submit();
    }function checkIdcard(idcard){
    var Errors=new Array(
    "验证通过!",
    "身份证号码位数不对!",
    "身份证号码出生日期超出范围或含有非法字符!",
    "身份证号码校验错误!",
    "身份证地区非法!"
    );
    var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}var idcard,Y,JYM;
    var S,M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    //地区检验
    if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
    //身份号码位数及格式检验
    switch(idcard.length){
    case 15:
    if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
    ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
    } else {
    ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
    }
    if(ereg.test(idcard)) return Errors[0];
    else return Errors[2];
    break;
    case 18:
    //18位身份号码检测
    //出生日期的合法性检查 
    //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
    //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
    if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
    ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
    } else {
    ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
    }
    if(ereg.test(idcard)){//测试出生日期的合法性
    //计算校验位
    S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
    + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
    + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
    + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
    + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
    + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
    + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
    + parseInt(idcard_array[7]) * 1 
    + parseInt(idcard_array[8]) * 6
    + parseInt(idcard_array[9]) * 3 ;
    Y = S % 11;
    M = "F";
    JYM = "10X98765432";
    M = JYM.substr(Y,1);//判断校验位
    if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位
    else return Errors[3];
    }
    else return Errors[2];
    break;
    default:
    return Errors[1];
    break;
    }}
    </script>