Javascript提交验证

Javascript提交验证,javascript,validation,coldfusion,Javascript,Validation,Coldfusion,Noob想知道如何使用javascript函数验证两个字段。 例如,在线javascoipt代码需要验证两个字段fieldx和fieldy function checkdate(input) { var validformat = /^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity var returnval = false if (!validformat.test(input.value)) alert("Invalid

Noob想知道如何使用javascript函数验证两个字段。 例如,在线javascoipt代码需要验证两个字段fieldx和fieldy

function checkdate(input) {
var validformat = /^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
var returnval = false
if (!validformat.test(input.value))
    alert("Invalid Date Format. Please correct and submit again.")
else { //Detailed check for valid date ranges
    var monthfield = input.value.split("/")[0]
    var dayfield = input.value.split("/")[1]
    var yearfield = input.value.split("/")[2]
    var dayobj = new Date(yearfield, monthfield - 1, dayfield)
    if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield))
        alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
    else
        returnval = true
}
if (returnval == false) input.select()
return returnval
}

< /script>
功能检查日期(输入){
var validformat=/^\d{2}\/\d{2}\/\d{4}$///格式有效性的基本检查
var returnval=false
如果(!validformat.test(输入值))
警报(“无效的日期格式。请更正并重新提交。”)
else{//详细检查有效日期范围
var monthfield=input.value.split(“/”[0]
var dayfield=input.value.split(“/”[1]
var yearfield=input.value.split(“/”[2]
var dayobj=新日期(年字段,月字段-1,日字段)
if((dayobj.getMonth()+1!=monthfield)| |(dayobj.getDate()!=dayfield)| |(dayobj.getFullYear()!=yearfield))
警报(“检测到无效的日、月或年范围。请更正并重新提交。”)
其他的
returnval=true
}
如果(returnval==false)输入。选择()
返回值
}

问题: 如何使用JavaScript验证这两个字段。我试过了,但没有成功

<cfform action="someactionyoutake.cfm" method ="POST" onSubmit="return 
checkdate(document.formname.fieldx && document.formname.fieldy)">


提前感谢

只需调用一个中间函数:

<script>
  function checkForm(){
    return datecheck(document.formname.fieldx) && datecheck(document.formname.fieldy)
  }
</script>
<cfform action="someactionyoutake.cfm" method ="POST" onSubmit="return checkForm()">

函数检查表(){
返回日期检查(document.formname.fieldx)和日期检查(document.formname.fieldy)
}

当您使用jquery标记问题时,请尝试以下代码片段

 $(document).ready(function(){

 var PreFormSubmitValidation = function (event) {
        var isFormValid = true;

        // your validation logic
        if(<Validation Logic Fails>){
             isFormValid = false;
        }

    if(!isFormValid){
                return false; 
                // or can use
                // event.preventDefault(); 
        }
    };

 $("#formId").submit(PreFormSubmitValidation); // calls the method when the form is posted to the server
 });
$(文档).ready(函数(){
var验证=功能(事件){
var isFormValid=true;
//您的验证逻辑
if(){
isFormValid=false;
}
如果(!isFormValid){
返回false;
//或者可以使用
//event.preventDefault();
}
};
$(“#formId”).submit(PreFormSubmitValidation);//在表单发布到服务器时调用该方法
});
希望它能帮上忙……

只要改变就行了

<cfform action="someactionyoutake.cfm" method ="POST" onSubmit="return datecheck(document.formname.fieldx && document.formname.fieldy)">



粘贴代码之前,请使用代码美化器。。。或者编辑器中的插件。您应该保持一致:在JavaScript中编写
datecheck()
,在HTML中编写
checkdate()
。此外,您不应该在HTML中使用on*事件。我不推荐像
document.formname.fieldx这样的DOM级别0访问,而是推荐document.getElementById(formorementId)<代码>名称
属性已被弃用,顺便说一句。我已经尝试了&&但没有成功。您应该使用某种javascript调试器,如FF的web控制台,它将帮助您查找问题。用于比较布尔值,但您将传入DOM元素。因此出现了错误。
<cfform action="someactionyoutake.cfm" method ="POST" onSubmit="return datecheck(document.formname.fieldx) && datecheck(document.formname.fieldy)">