2

我正在尝试检查两个输入框是否具有相同的值,但问题是它总是以相同的值显示它们。我认为这些值没有被存储在价值中?

<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

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

当我尝试提醒它时,$('#fname').attr('value')它说未定义。是没有正确记录值还是其他原因?

这是jsfiddle。它可以工作,但当我在本地机器上运行相同的代码时就不行了。 http://jsfiddle.net/g2kBm/56/

4

4 回答 4

2

使用.val()jQuery 方法。

描述:获取匹配元素集中第一个元素的当前值。

$("#fname").val();

阅读更多

于 2013-03-19T03:57:14.207 回答
0

你应该使用:

if ($('#fname').val() == $('#lname').val()) {
    alert('Same Value');
    return false;
} else {
    return true;
}

相反, attr() 不用于获取输入的值。这用于向输入添加属性。这也是您收到“未定义”消息的原因。

于 2013-03-19T03:57:37.100 回答
0

可能只是修改这个小部分,可能会对您有所帮助。

$(document).ready( function() {
$('input').blur(function () {
    if ($('#fname').val() == $('#lname').val()) {
        alert('Same Value');
        return false;
    } else {
        return true;
    }
 });
});
于 2013-03-19T04:01:09.163 回答
0

你定义$('#fname').attr('value')了,它说未定义。如果你想使用value 属性,你必须先声明它。但是您没有声明并尝试获取输入的价值。

jquery如果要检查值,可以使用val().

if ($('#fname').val() == $('#lname').val()) {
    alert('Same Value');
    return false;
} else {
    return true;
}
于 2013-03-19T04:01:48.880 回答