blur()在jsfiddle上工作但不在我的本地机器上工作

时间:2013-03-19 03:12:06

标签: jquery

当我在本地计算机上从jsfiddle运行相同的代码时,它不起作用。我确实链接了jQuery,因为我的其他jQuery函数正在运行。

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; }
});

为什么不显示警报?

2 个答案:

答案 0 :(得分: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; }
    });
});

答案 1 :(得分:0)

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

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