2011-11-14 90 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(); 
    } 
}); 
相关问题