2013-03-19 105 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; 
     } 
    }); 
}); 
相關問題