2017-05-26 83 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();" />