如果onblur返回false,则阻止执行提交按钮中的onclick代码

时间:2017-05-26 08:54:23

标签: javascript

文本字段如下所示:

VARCHAR2

按钮看起来像这样:

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

以下是我在onblur代码中的功能:

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

例如,如果用户更改function myFunction() { var x = document.getElementById("nm"); if(x.value>12) { alert("error"); x.value="0"; x.focus(); return false; } return true; } 文本字段的值并单击下一个文本字段,则必须显示警报(如果返回false),但是如果用户更改了{{{ 1}}字段然后单击SUBMIT按钮,如果nm返回nm,则{}}}中的onclick提交按钮中的功能代码不能运行。目前,如果onblur返回falseonclick中的函数将被执行。

请帮我解决一下。

2 个答案:

答案 0 :(得分:0)

选项A:

保存onBlur函数返回变量并在val()函数的开头访问它,以了解是否必须执行其余代码。

选项B:

在onBlur上以交互方式修改按钮元素。

带有id =&#34;按钮&#34;

的按钮
<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可以再次使用。

答案 1 :(得分: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();" />