如何使用JQuery在blur()上调用此函数?
问题描述:
我有这个功能,见下图:如何使用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();
});
答
这是调用它的正确方法。
它可能失败的唯一原因是在.blur()调用时#StartingPrice元素不存在。
如果它是存在于页面上,使用这样的:
$(document).ready(function() {
$('#StartingPrice').blur(checkStartPrice)
})
如果动态通过AJAX加入,使用:
$(document).ready(function() {
$('#StartingPrice').live('blur',checkStartPrice)
})
注意,第二解决方案需要至少jQuery的1.4 .1
如果你在'document.ready'回调中正确调用它,它将会起作用,甚至'$('#StartingPrice')。blur(checkStartPrice)'也会执行。 DOM必须加载才能工作。见http://api.jquery.com/ready/ – 2011-04-26 12:21:42
什么类型的#StartingPrice?它需要是支持模糊事件的类型 – liron 2011-04-26 12:28:43
错误是什么? – 2011-04-26 12:29:58