2011-04-26 84 views
0

我有這個功能,見下圖:如何使用JQuery在blur()上調用此函數?

function checkStartPrice(){ 
    if ($('#StartingPrice')[0].value.length == 0){ 
     alert("The 'Starting Price' cannot be left empty!"); 
     return false; 
    } else { 
     var BuyItNowPrice = parseFloat($('#BuyItNowPrice').val()); 
     var StartingPrice = parseFloat($('#StartingPrice').val()); 
     var Reserve = parseFloat($('#Reserve').val()); 
     if((BuyItNowPrice <= StartingPrice) && (StartingPrice > 0)){ 
      alert("The 'Buy It Now' price must be higher..."); 
      return false; 
     } 
     if((Reserve <= StartingPrice) && (StartingPrice > 0)){ 
      alert("Your 'Reserve Price' must be higher..."); 
      return false; 
     } 
     return true; 
    } 
} 

問:我如何調用它模糊?我試過下面的代碼,但它似乎不工作:

$('#StartingPrice').blur(function(){ 
    checkStartPrice(); 
}); 
+4

如果你在'document.ready'回調中正確調用它,它將會起作用,甚至'$('#StartingPrice')。blur(checkStartPrice)'也會執行。 DOM必須加載才能工作。見http://api.jquery.com/ready/ – 2011-04-26 12:21:42

+0

什麼類型的#StartingPrice?它需要是支持模糊事件的類型 – liron 2011-04-26 12:28:43

+0

錯誤是什麼? – 2011-04-26 12:29:58

回答

2

這是調用它的正確方法。
它可能失敗的唯一原因是在.blur()調用時#StartingPrice元素不存在。

如果它是存在於頁面上,使用這樣的:

$(document).ready(function() { 
    $('#StartingPrice').blur(checkStartPrice) 
}) 

如果動態通過AJAX加入,使用:

$(document).ready(function() { 
    $('#StartingPrice').live('blur',checkStartPrice) 
}) 

注意,第二解決方案需要至少jQuery的1.4 .1

相關問題