2011-05-20 54 views
-1

如果條件格式不正確,我很擔心。
這看起來合適嗎?

Javascript函數格式

function validateCoupon(form){ 

if (form.textCoupon.value.length){ 

    if (form.textCoupon.value.toLowerCase() == "Item01") { 
    _gaq.push(['_trackEvent', 'Coupon', 'Activated', 'Item01']); 
    } 

    if (form.textCoupon.value.toLowerCase() == "Item02") { 
    _gaq.push(['_trackEvent', 'Coupon', 'Activated', 'Item02']); 
    } 

$.get("/include/checkCoupon.php", { coupon: form.textCoupon.value }, validateShipping); 
} 
    else { 
    form.textCoupon.style.border = ''; 
    validateShipping("yes"); 
    } 
return false; 
} 
+2

你toLowerCase ==「Item01」檢查永遠不會通過,因爲Item01不是小寫。 – Eli 2011-05-20 13:49:55

回答

0

如果這是我的代碼,這將是我怎麼寫的:

var validateCoupon = function (form) { 
    var textCoupon = form.textCoupon, 
     value = textCoupon.value, 
     track = function (value) { 
      _gaq.push(['_trackEvent', 'Coupon', 'Activated', value]); 
     }; 

    if (value.length) { 
     if (value === 'Item01' || value === 'Item02') { 
      track(value); 
     } 

     $.get('/include/checkCoupon.php', { coupon: value }, validateShipping); 
    } else { 
     textCoupon.style.border = ''; 
     validateShipping('yes'); 
    } 

    return false; 
}; 
+0

感謝Eli的幫助,這絕對是完美的作品!沒有更多的如果問題=) – detonate 2011-05-20 14:01:26

0

的源代碼的格式是無關的JavaScript運行。這只是個人品味的問題。

1

好了,東西似乎是一個冗餘:form.textCoupon.value可能是Item01Item02。如果它是一個它不可能是另一個,所以我建議你開關聲明。

的另一個問題是,如果你調用.toLowerCase()這絕不會返回Item01item01,和字符串平等是區分大小寫的。要麼將這個函數調用到條件的兩個部分,要麼就是不要使用它。

0

避免在縮進中使用製表符:它們在所有平臺上的渲染效果不盡相同。

+0

那又如何?哈哈,手工縮小代碼? – 2011-05-20 14:00:55

+0

不,請用空格代替 – 2011-05-20 15:04:35

+0

啊,我明白了。那麼IDE的縮進代碼方式呢? Visual Studio,Eclipse等都允許這種縮進方式嗎? – 2011-05-20 16:37:06