2011-11-14 127 views
0

我有以下的jQuery函數jQuery函數工作在Firebug控制檯,但不是在頁面

$("#photographers_password_confirm").focusout(function() { 
alert('bla') 
if($("#photographers_password") != $("photographers_password_confirm")){ 
        $("#photographers_password_error").slideDown(); 
      }else{ 
        $("#photographers_password_error").hide(); 
      } 
}); 

它工作在Firebug控制檯罰款,但是當我把它放在它不能同時工作,但它的頁面不會在螢幕控制檯中返回任何錯誤。我究竟做錯了什麼?

+0

你可以把你的代碼有一些相關的標記沿[的jsfiddle] (http://jsfiddle.net)?從上面的代碼中很難弄清楚。 – abhinav

+0

你是否將它包裝在'$(document).ready()'中?如果您要添加'#photographers_password_confirm',則需要使用'$(「#photographers_password_confirm」)。live('focusout',function(){})'。 – Matt

+1

你想比較的字段值,而不是jQuery對象:$(「#photographers_password」)。val()$(「photographers_password_confirm」)。val() – Irishka

回答

1

在頁面中,您是以「內聯」的方式運行它,作爲HTML下載的一部分,還是在文檔完成其下載後運行它?

我的猜測是代碼運行正常,但是在HTML準備好被操縱之前它正在運行。

確保它是在一個$(function() { /* place code here */ });

+0

非常感謝,這工作......但現在由於某種原因,功能沒有像它的假設....任何想法爲什麼 –

-2

如果這是確切的代碼,那麼請把;警報後。有些瀏覽器把它和一些不那麼這將是很好的遵循相同的舊編碼風格:)

+1

'一些瀏覽器採取它,有些不''...任何例子?這是荒謬的AFAIK。 – Matt

+0

它是這樣的:http://stackoverflow.com/questions/8091606/script-onload-in-ie/8091646#8091646 – Rohan

+1

Urr,這是一個你自己的答案的鏈接......沒有證據表明「有些瀏覽器把它和一些不''。分號在JavaScript中是可選的,建議您將它們放入自己;但是因爲'return \ n 3 + 4'這樣的東西會返回undefined,而不是7 ...不是因爲結果在不同瀏覽器中不一致。 – Matt

0

試試這個:

$("#photographers_password_error").slideUp(); 
$("#photographers_password_confirm").focusout(function() { 
    alert('bla'); 
    if ($("#photographers_password").val() != $("#photographers_password_confirm").val()) { 
     $("#photographers_password_error").slideDown(); 
    } else { 
     $("#photographers_password_error").slideUp(); 
    } 
}); 
相關問題