2013-07-22 77 views
0

這是我的js代碼,我使用onblur方法調用下面的函數。如何停止onblur js多次加載加載?

function getTotalNew(id) 
    { 
     //alert(id); 
     var con = document.getElementById('con'+id).value; 
     con = Number(con);//alert(con); 
     var was = document.getElementById('was'+id).value; 
     was = Number(was);//alert(was); 
     var ttl = document.getElementById('ttl'+id).value; 
     ttl = Number(ttl);//alert(ttl); 

     var value1 = (con*ttl);//alert(value1); 
     var value2 = (ttl*con*was)/100; 

     var res = value1 + value2; //alert(res); 
     document.getElementById('ttl'+id).value = res; 
    } 

我希望它只執行一次。

但是,每當我將鼠標移出時它都在執行。這突然改變了我的身材。

我怎樣才能讓它只執行一次?

+1

第一個電話後退訂?使用國旗?有很多解決方案。 – gdoron

回答

0

嘗試onchange事件。代碼好像你想在onc​​hange上進行計算,而不是每次都關注焦點。

+0

感謝您的回答,我會試試這個 – amit

0

試試這個:

var flag=1; 

if(flag){ 
    function getTotalNew(id) 
    { 
     //alert(id); 
     flag = 0; 
     var con = document.getElementById('con'+id).value; 
     con = Number(con);//alert(con); 
     var was = document.getElementById('was'+id).value; 
     was = Number(was);//alert(was); 
     var ttl = document.getElementById('ttl'+id).value; 
     ttl = Number(ttl);//alert(ttl); 

     var value1 = (con*ttl);//alert(value1); 
     var value2 = (ttl*con*was)/100; 

     var res = value1 + value2; //alert(res); 
     document.getElementById('ttl'+id).value = res; 
    } 
} 
0

正如阿布舍克說你不想上運行模糊的功能,因爲我將要運行的功能,每次你會移動焦點。

你有2個解決方案:

1)是使用的onChange反而比的onblur,事實上在的onChange將只運行功能如果輸入值發生了變化,因此,例如,如果標籤雖然未做任何改變它將不會運行,(但如果你按空間它會)

2)使用onKeyDown(這將運行該功能,每次鍵入的東西..)。我不知道你的功能在哪裏使用,但有時會給網站帶來很好的動態效果。

0

使用jQuery .off方法,以保持魔鬼一次之後,它叫...

function getTotalNew(id) 
{ 
    //alert(id); 
    var con = document.getElementById('con'+id).value; 
    con = Number(con);//alert(con); 
    var was = document.getElementById('was'+id).value; 
    was = Number(was);//alert(was); 
    var ttl = document.getElementById('ttl'+id).value; 
    ttl = Number(ttl);//alert(ttl); 

    var value1 = (con*ttl);//alert(value1); 
    var value2 = (ttl*con*was)/100; 

    var res = value1 + value2; //alert(res); 
    document.getElementById('ttl'+id).value = res; 

    var disId = 'con'+id; 
    $("body").off("change", "#"+disId, getTotalNew); 
}