2017-05-26 34 views
0

的文本字段看起来是这样的:预防的onclick代码从执行提交按钮,如果的onblur返回false

<input type="text" id="nm" name="marks" value="60" onblur="return(myFunction())"/> 

按钮看起来是这样的:

<input type="submit" value="submit" onclick="val();" /> 

以下是我的onblur码功能:

function myFunction() { 
    var x = document.getElementById("nm"); 

    if(x.value>12) { 
     alert("error"); 
     x.value="0"; 
     x.focus(); 

     return false; 
    } 
    return true; 
} 

例如,如果用户改变nm文本字段和CLIC的值如果用户更改nm字段的值,然后单击提交按钮,则提交按钮中的onclick中的功能代码不得不显示(如果返回false)如果onblur返回false则运行。目前,如果onblur返回false,则onclick中的功能得到执行。

请帮我解决。

回答

0

选项A:

保存的onblur函数返回到一个变量和存取权限它VAL()函数的开头要知道,如果你要执行的代码或不休息。

选项B:

修改按钮元件交互上的onblur。

按钮使用id = “按钮”

<input type="submit" id="button" value="submit" onclick="val();" /> 

新的onblur功能:

function myFunction() 

     { 
     var x = document.getElementById("nm"); 
     var button = document.getElementById("button"); 
      if(x.value>12) 
      { 
       button.removeAttribute("onclick"); 
       alert("error"); 
       x.value="0"; 
       x.focus(); 
       return false; 
      } 
      button.setAttribute("onclick", "val();"); 
      return true; 
     } 

有想法这两个选项都需要经过一个有效的onblur()和无效之一的onClick重新工作。

+0

非常感谢。有效。它节省了我很多时间。我正在找出很长一段时间的出路。 – Leeza

0

我觉得onclcik功能就足以知道值大于12个或不

function val() { 
 

 
    var x = document.getElementById("nm"); 
 

 
    if(x.value>12) { 
 
     alert("error"); 
 
     x.value="0"; 
 
     x.focus(); 
 

 
     return false; 
 
    } 
 
    
 
    //do whatever you want 
 
    
 
    return true; 
 
}
<input type="text" id="nm" name="marks" value="60" /> 
 

 
<input type="submit" value="submit" onclick="val();" />

相关问题