Javascript在循环中验证

时间:2014-10-03 17:05:48

标签: javascript

我顶部有两个单选按钮(是/否)如果是,则javascript函数showhideform显示另一个文本框(证书)。正如你所看到的那样,这个表单处于循环中。如果选择是,循环为1,则一切正常。如果是,我在循环为2时提交,它只验证证书文本框2并忘记证书文本框1.我需要它来验证是否选择了两次。

电台按钮:

<input
 type="radio"
 value="No"
 name="abc_<cfoutput>#BAdd#</cfoutput>"
 id="noabc_<cfoutput>#BAdd#</cfoutput>"
 onchange="showhideForm_<cfoutput>#BAdd#</cfoutput>(this.value);"/>
<label for="noabc_<cfoutput>#BAdd#</cfoutput>">No</label>

<input 
 type="radio"
 value="Yes"
 name="abc_<cfoutput>#BAdd#</cfoutput>"
 id="abc_<cfoutput>#BAdd#</cfoutput>"
 required="yes"
 onchange="showhideForm_<cfoutput>#BAdd#</cfoutput>(this.value);"/>
<label for="abc_<cfoutput>#BAdd#</cfoutput>">Yes</label>

显示/隐藏收音机按钮:

function showhideForm_<cfoutput>#BAdd#</cfoutput>(abc_<cfoutput>#BAdd#</cfoutput>) {
    if (abc_<cfoutput>#BAdd#</cfoutput> == "Yes") {
        document.getElementById("div1_<cfoutput>#BAdd#</cfoutput>").style.display = 'block';
        document.getElementById("div2_<cfoutput>#BAdd#</cfoutput>").style.display = 'none';
    } 
   else if (abc_<cfoutput>#BAdd#</cfoutput> == "No") {
        document.getElementById("div2_<cfoutput>#BAdd#</cfoutput>").style.display = 'block';
        document.getElementById("div1_<cfoutput>#BAdd#</cfoutput>").style.display = 'none';
    }
}

通过循环验证:

 function doSubmit(n) {
        var QnoText = ['abc_<cfoutput>#BAdd#</cfoutput>'];  // add IDs here for questions with optional text input
           var ids = '';
           flag = true;
           for (i=0; i<QnoText.length; i++) {
               CkStatus = document.getElementById(QnoText[i]).checked;
               ids = QnoText[i]+'Certificate_<cfoutput>#BAdd#</cfoutput>' + n;
               if (CkStatus && document.getElementById(ids).value == '') {
               alert('Please enter certificate number ' + n + '.');
               document.getElementById(ids).focus();
               flag = false;

          }
        }
    return flag;
    }

证书文本框:

<input
 type="text"
 name="abc_<cfoutput>#BAdd#</cfoutput>Certificate_<cfoutput>#BAdd#</cfoutput>"
 validateat="onSubmit"
 validate="maxlength"
 id="abc_<cfoutput>#BAdd#</cfoutput>Certificate_<cfoutput>#BAdd#</cfoutput>"
 size="54"
 maxlength="120"
 value="">

提交按钮:     //返回doSubmit(1);

2 个答案:

答案 0 :(得分:0)

看起来n只是它正在验证的输入文本框的id的编号/索引。

看着你的代码,CKStatus在我看来是一个复选框。如果选中,它将根据参数n。

验证证书输入文本框

答案 1 :(得分:0)

经过几天的努力,我终于明白了!我只想感谢所有帮助过的人,这是感兴趣的人的代码!

<script type="text/javascript">
function doSubmit() { 
    var count =<cfoutput>#BAdd#</cfoutput>;
    flag = true; 
    for (i=1; i<=count; i++){
    var ids = 'abc_'+i +'Certificate_'+i;
    var Radio = 'abc_'+i
        CkStatus = document.getElementById(Radio).checked; 
            if (CkStatus && document.getElementById(ids).value == '') {
            alert('Please enter certificate number ' +i);
            document.getElementById(ids).focus();
            flag = false;

        }
    }
  return flag;
}


</script>