2012-11-13 243 views
1

我正在嘗試爲3個字段創建一個keyup事件,以便在這3個字段中的任何一個被鍵入時觸發一個函數。我在IE中工作,因爲這是我們的應用程序正式支持的唯一瀏覽器。這是它將使用的html的重要部分。JQuery keyup事件不觸發

<input title="Buy Price (Cannot be used in conjunction with Percentage Price)" name="BuyRate" size="3" id="BuyRate" type="text" /> 
<input title="Sell Price (Cannot be used in conjunction with Percentage Price)" name="SellRate" size="3" id="SellRate" type="text" /> 
<input title="Percentage Price (Cannot be used in conjunction with Buy/Sell Price)" name="PercentagePrice" id="PercentagePrice" type="text" id="PercentagePrice" maxlength="9" size="5" /> 

這裏是我現在擁有的JQuery。

$("#BuyRate").keyup(function() { 
alert("1"); 
    checkBuySellPercentage(); 
}); 

$("#SellRate").keyup(function() { 
alert("2"); 
    checkBuySellPercentage(); 
}); 

$("#PercentagePrice").keyup(function() { 
alert("3"); 
    checkBuySellPercentage(); 
}); 

function checkBuySellPercentage() 
{ 
alert("4"); 
    var buyrate = $.trim($("#BuyRate").val()); 
    var sellrate = $.trim($("#SellRate").val()); 
    var percentageprice = $.trim($("#PercentagePrice").val()); 
    if (buyrate !== "" || sellrate !== "") 
    { 
     $("#PercentagePrice").attr("disabled", "disabled"); 
    } 
    else if (percentageprice !== "") 
    { 
     $("#BuyRate").attr("disabled", "disabled"); 
     $("#SellRate").attr("disabled", "disabled"); 
    } 
    else 
    { 
     $("#BuyRate").removeAttr("disabled"); 
     $("#SellRate").removeAttr("disabled"); 
     $("#PercentagePrice").removeAttr("disabled"); 
    } 
} 

爲什麼不能正常工作?

+0

明明警報我試圖調試。 –

+0

我複製你的代碼,似乎工作:http://jsfiddle.net/V9WyF/embedded/result/ – martinczerwi

回答

2

它在IE 8和Google Chrome中看起來很適合我。你什麼時候執行這些腳本行?當您嘗試添加事件偵聽器時,DOM可能不會處於就緒狀態。因此,將這種事件綁定在jquery's document.ready區塊總是有幫助的!

的document.ready塊例如:

$(document).ready(function(){ 
    // keyup event bindings should be in this block 
}); 
+1

輝煌,我沒有發現,我正在工作的頁面沒有得到它。謝謝。 –