Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript。请就更好的代码重用和/或结构提出建议_Javascript - Fatal编程技术网

JavaScript。请就更好的代码重用和/或结构提出建议

JavaScript。请就更好的代码重用和/或结构提出建议,javascript,Javascript,正如标题所示,下面是我的JavaScript的更好的编码结构或实现。这将在提交到数据库之前检查表单中的ID元素值 我很想知道我是否可以减少代码大小/是否可以实现代码的重用,这将为我的未来提供一些提示 谢谢 函数validateRunnerID() { var runnerID=document.getElementById('runnerID')。值; 如果(isNaN(runnerID)| | runnerID9999) { return“RunnerID:输入一个介于1-9999之间的整数

正如标题所示,下面是我的JavaScript的更好的编码结构或实现。这将在提交到数据库之前检查表单中的ID元素值

我很想知道我是否可以减少代码大小/是否可以实现代码的重用,这将为我的未来提供一些提示

谢谢


函数validateRunnerID()
{
var runnerID=document.getElementById('runnerID')。值;
如果(isNaN(runnerID)| | runnerID<1 | | runnerID>9999)
{
return“RunnerID:输入一个介于1-9999之间的整数值\n\n”;
}否则{
返回“”;
}
}
函数validateEventID()
{
var eventID=document.getElementById('eventID')。值;
如果(isNaN(eventID)| | eventID<1 | | eventID>9999)
{
return“EventID:输入一个介于1-9999之间的整数值\n\n”;
}否则{
返回“”;
}
}
函数validateDate()
{
var checkDate=/^[0-9]{4}-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01]);
var date=document.getElementById('date');
var tof=日期.值.匹配(检查日期);
返回tof?”:“日期:使用参数输入有效日期:YYYY-MM-DD\n\n”;
}
函数validateFinishTime()
{
var finishTime=document.getElementById(“finishTime”).value;
if(finishTime.match(/^[0-9]{2}:[0-9]{2}:[0-9]{2}$/)
{
返回“”
}否则{
返回“完成时间:输入参数为HH:MM:SS的有效时间\n\n”;
}
}
//  
//
函数validatePosition()
{
var position=document.getElementById('position')。值;
if(position.length==0)
{
document.getElementById('Position')。值=-1;
返回“”;
}否则{
返回“”;
}
}
函数validateCategoryID()
{
var categoryID=document.getElementById('categoryID').value;
如果(categoryID.length==0)
{
document.getElementById('CategoryID')。值=-1;
返回“”;
}否则{
返回“”;
}
}
函数validateAgeGrade()
{
var ageGrade=document.getElementById('ageGrade')。值;
如果(ageGrade.length==0)
{
document.getElementById('AgeGrade')。值=-1;
返回“”;
}否则{
返回“”;
}
}
函数validatePB()
{
var pBest=document.getElementById('PB').value;
如果(pBest.length==0)
{
document.getElementById('PB')。值=0;
返回“”;
}否则{
返回“”;
}
}
//  
//
函数validateForm()
{
var result=validateRunnerID()+validateEventID()+validateDate()+validateFinishTime()+validatePosition()+validateCategoryID()+validateAggrade()+validatePB();
如果(结果==“”)
{ 
警报(“接受并提交的数据\n\n”);
返回true;
}否则{
警报(“请修复列出的错误:\n\n”+结果);
返回false;
}
}

您可以做的一件事是接受
元素ID
作为验证函数的输入。这允许对不同的字段重用相同的逻辑

例如:

function validate4DigitInt(elementId)
{
    var value = document.getElementById(elementId).value;
    if (isNaN(value) || value < 1 || value > 9999)
    {
        return elementId + ": Enter a Integer Value between 1-9999 \n\n";
    }else{
        return "";
    }
}

我假设您不能实现上述日期/时间格式的代码重用,但其他函数应该遵循您给出的相同准则,不会出现问题。js现在开始变得更有意义了:)谢谢你的反馈。
function validate4DigitInt(elementId)
{
    var value = document.getElementById(elementId).value;
    if (isNaN(value) || value < 1 || value > 9999)
    {
        return elementId + ": Enter a Integer Value between 1-9999 \n\n";
    }else{
        return "";
    }
}
var result="";
result+=validate4DigitInt("RunnerId");
result+=validate4DigitInt("EventId");