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