当我在本地计算机上从jsfiddle运行相同的代码时,它不起作用。我确实链接了jQuery,因为我的其他jQuery函数正在运行。
<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 :(得分: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;
}
});
});