Javascript 如何调用HTML DOM事件对象(例如:onclick、onblur等)嵌套函数?

Javascript 如何调用HTML DOM事件对象(例如:onclick、onblur等)嵌套函数?,javascript,html,events,dom,nested-function,Javascript,Html,Events,Dom,Nested Function,你好! 假设我的页面中有一组文本字段,每个文本字段在onblur过程中都有自己的验证,例如amount textfield,如果我移除它的焦点,它将检查它是否大于100000 哎呀!这只是其中一个具有验证的文本字段,如果我有5个,那么假设我单击按钮处理验证中有3个问题的数据,那么由于这些错误,数据将不会被处理。在我的例子中,我将使用onclick事件,看看这个例子: 应用 所以我的问题是如何在HTMLDOM事件中调用函数内部的函数?有没有更简单可行的方法?提前谢谢你 有很多方法,但我建议使用验

你好! 假设我的页面中有一组文本字段,每个文本字段在onblur过程中都有自己的验证,例如amount textfield,如果我移除它的焦点,它将检查它是否大于100000

哎呀!这只是其中一个具有验证的文本字段,如果我有5个,那么假设我单击按钮处理验证中有3个问题的数据,那么由于这些错误,数据将不会被处理。在我的例子中,我将使用onclick事件,看看这个例子:

应用


所以我的问题是如何在HTMLDOM事件中调用函数内部的函数?有没有更简单可行的方法?提前谢谢你

有很多方法,但我建议使用验证库。自己滚动是一个非常危险的提议,并将导致无法管理的“意大利面代码”

这里有几个图书馆,你可以看看


有很多方法可以做到这一点,但我建议使用验证库。自己滚动是一个非常危险的提议,并将导致无法管理的“意大利面代码”

这里有几个图书馆,你可以看看


有很多方法可以做到这一点,但我建议使用验证库。自己滚动是一个非常危险的提议,并将导致无法管理的“意大利面代码”

这里有几个图书馆,你可以看看


有很多方法可以做到这一点,但我建议使用验证库。自己滚动是一个非常危险的提议,并将导致无法管理的“意大利面代码”

这里有几个图书馆,你可以看看

您可以将“this”传递给事件处理程序,以便它知道应该验证哪个字段。在提交表单时,我会再次运行所有验证函数,而不是保留一个计数,因为如果人们更正错误,或者将错误添加到以前更正的字段中,这可能会变得混乱。
我添加了一个虚拟验证器作为示例

功能检查数据(字段){
如果(!字段){
var numberOfErrors=0;
如果(!validateAmount())numberOfErrors++;
如果(!validateOther())numberOfErrors++;
如果(!numberOfErrors){
警告(“恭喜!你已经提交了贷款”);
}否则{
警报(“错误!检查您的输入!”);
}
}else if(field.id==“amount”)validateAmount()
else if(field.id==“other”)validateOther();
函数validateAmount(){
var amount=parseFloat(document.getElementById(“amount”).value);
如果(isNaN(金额)| |金额>100000){
document.getElementById(“errormessage”).innerHTML=“无效!金额必须小于100000!”;
返回(假);
}
返回(真);
}
函数validateOther(){
var other=parseFloat(document.getElementById(“other”).value);
如果(isNaN(其他)|其他>100){
document.getElementById(“errormessage”).innerHTML=“无效!其他值必须小于100!”;
返回(假);
}
返回(真);
}
}

申请
您可以将“this”传递给事件处理程序,以便它知道应该验证哪个字段。在提交表单时,我会再次运行所有验证函数,而不是保留一个计数,因为如果人们更正错误,或者将错误添加到以前更正的字段中,这可能会变得混乱。
我添加了一个虚拟验证器作为示例

功能检查数据(字段){
如果(!字段){
var numberOfErrors=0;
如果(!validateAmount())numberOfErrors++;
如果(!validateOther())numberOfErrors++;
如果(!numberOfErrors){
警告(“恭喜!你已经提交了贷款”);
}否则{
警报(“错误!检查您的输入!”);
}
}else if(field.id==“amount”)validateAmount()
else if(field.id==“other”)validateOther();
函数validateAmount(){
var amount=parseFloat(document.getElementById(“amount”).value);
如果(isNaN(金额)| |金额>100000){
document.getElementById(“errormessage”).innerHTML=“无效!金额必须小于100000!”;
返回(假);
}
返回(真);
}
函数validateOther(){
var other=parseFloat(document.getElementById(“other”).value);
如果(isNaN(其他)|其他>100){
document.getElementById(“errormessage”).innerHTML=“无效!其他值必须小于100!”;
返回(假);
}
返回(真);
}
}

申请
您可以将“this”传递给事件处理程序,以便它知道应该验证哪个字段。在提交表单时,我会再次运行所有验证函数,而不是保留一个计数,因为如果人们更正错误,或者将错误添加到以前更正的字段中,这可能会变得混乱。
我添加了一个虚拟验证器作为示例

功能检查数据(字段){
如果(!字段){
var numberOfErrors=0;
如果(!validateAmount())numberOfErrors++;
如果(!validateOther())numberOfErrors++;
如果(!numberOfErrors){
警告(“恭喜!你已经提交了贷款”);
}否则{
警报(“错误!检查您的输入!”);
}
}else if(field.id==“amount”)validateAmount()
else if(field.id==“other”)validateOther();
函数validateAmount(){
var amount=parseFloat(document.getElementById(“amount”).value);
如果(isNaN(金额)| |金额>100000){
document.getElementById(“errormessage”).innerHTML=“无效!金额必须小于100000!”;
返回(假);
}
返回(真);
}
函数validateOther(){
var other=parseFloat(document.getElementById(“其他
function validateAmount(){
  var amount = document.getElementById("amount").value;
  if (amount > 100000){
      document.getElementById("errormessage").innerHTML = "Invalid! Enter a number less than 100,000!"; //Let's just assume that I have a label for the error message
  }
}
function checkData(){
//Here in checkData() method/function, I want to put the validateAmount() function above and other functions of validation during onblur to count and state the number of errors before submitting the data. 
    var numberOfErrors = 0;
    function validateAmount(){
      var amount = document.getElementById("amount").value;
      if (amount > 100000){
          document.getElementById("errormessage").innerHTML = "Invalid! Enter a number less than 100,000!"; //Let's just assume that I have a label for the error message
          numberOfErrors++;
      }
    }
    /* And more validating functions here
    */

    // After validating all the textfields.
    if(numberOfErrors == 0){
    alert("Congrats! You already submitted the loan");
    } else {
    alert("Error! Check your inputs!");
    }
}