2013-03-19 79 views
0

当我在本地机器上从jsfiddle运行相同的代码时,它不起作用。我有jQuery链接,因为我的其他jQuery功能正在工作。blur()在jsfiddle上工作,但不在本地机器上

http://jsfiddle.net/g2kBm/56/

<div class="errorbox-good"> 
     <div> 
      <div class="form-entry"> 
       <label> 
        <div> First Name 
         <span class="ss-required-asterisk">*</span> 
        </div> 
       </label> 
        <input type="text" id="fname" name="fname" required> 
      </div> 
     </div> 
    </div> 

<div class="errorbox-good"> 
     <div> 
      <div class="form-entry"> 
       <label> 
        <div> Last Name 
         <span class="ss-required-asterisk">*</span> 
        </div> 
       </label> 
        <input type="text" name="lname" id="lname" required> 
      </div> 
     </div> 
    </div> 

jQuery的

$('input').blur(function() { 
if ($('#fname').attr('value') == $('#lname').attr('value')) { 
alert('Same Value'); return false; 
} else { return true; } 
}); 

为什么不显示我的警告?

+0

您是否100%确定您在本地副本中使用了JQuery?你检查了错误控制台吗? – 2013-03-19 03:13:49

+0

使用准备好或加载 – 2013-03-19 03:14:03

回答

3

默认情况下,jsfiddle使用jQuery.load()方法,该方法将一直等到页面上的所有元素都被加载。但是基于代码片段,你可能会在jQuery加载之前触发Javascript,所以没有任何反应。

解决方法是将所有jQuery代码都包含在.ready().load()方法中。

$(document).ready(function() { 
    $('input').blur(function() { 
     if ($('#fname').attr('value') == $('#lname').attr('value')) { 
      alert('Same Value'); 
      return false; 
     } else { return true; } 
    }); 
}); 
0

将您的代码放在$(document).ready()处理程序中。

$(document).ready(function() { 
    $('input').blur(function() { 
     if ($('#fname').attr('value') == $('#lname').attr('value')) { 
      alert('Same Value'); 
      return false; 
     } else { 
      return true; 
     } 
    }); 
}); 
相关问题