2011-12-29 11 views
0

我已經得到了我想要配置CSS保證金速記%使用 - 如果(isNaN()))找到一個替代

目前我得到用戶輸入的數字一點點計算器然後我把每個數字分開,然後「做數學」。

我希望它在用戶使用CSS速記時忽略任何NaN。

我目前得到這個 -

if(isNaN(parseInt(margins || paddings))) 
     alert(" Please re-enter your age."); 

其作品,但我想改變「提醒」有點忽略/什麼也沒有更換爲NaN。

任何想法?

這裏是我的jsfiddle鏈接 - http://jsfiddle.net/sturobson/reCjA/8/

我不想讓NaN的,如果用戶沒有提交任何數字

+0

你能告訴更多的代碼...! – 2011-12-29 09:46:21

+0

編輯q。一些代碼的鏈接 - http://jsfiddle.net/sturobson/reCjA/8/ – 2011-12-29 09:57:31

+0

如果NaN ... – 2011-12-29 09:58:11

回答

0

嗯..很瑣碎出現。

if (isNaN(parseInt(margins || paddings))) { 
    //do nothing. 
} 

另一種選擇,相反的方向:

if(!isNaN(parseInt(margins || paddings))) { 
    //do something 
} 

看到你的編輯後,看起來你需要的是一個包裹parseInt,如果沒有有效的數字返回空字符串自定義函數:

function GetIntOrEmpty(value) { 
    var result = parseInt(value, 10); 
    return isNaN(result) ? "" : result + ""; 
} 

然後,只需調用它而不是parseInt,並將所有計算移動到函數調用的「內部」,因爲用字符串做數學不是好主意。

例如:

//OTHER RESULT CALCULATIONS 
var result4 = GetIntOrEmpty(num4* 2); 
var result7 = GetIntOrEmpty(num5 * 2); 
var result8 = GetIntOrEmpty(num3 * 2); 
var resulta = GetIntOrEmpty(num1 - result8 - result4 - result7); 
var result3 = GetIntOrEmpty(num1 - result4); 
var result5 = GetIntOrEmpty(num4/num1 * 100); 
var result6 = GetIntOrEmpty(num5/num1 * 100); 
var result = GetIntOrEmpty(resulta/num2 * 100); 
var result2 = GetIntOrEmpty(num1 - num3); 

Updated fiddle

+0

我希望它,如果有一個NaN在那裏有'沒有'在最終的HTML - 請參閱我編輯的問題鏈接到JSFiddle – 2011-12-29 09:51:30

+0

@Stuart足夠公平,請參閱我的編輯.. – 2011-12-29 10:44:46

0

至於我明白你的問題,你不能這樣做:

 

if(isNaN(parseInt(margins || paddings))) { 
    alert(" Please re-enter your age."); 
    return false; 
} 
 
+0

請參閱編輯的代碼,如果其NaN它不會顯示任何東西..! – 2011-12-29 10:00:49

相關問題