我试图用jQuery比较两个输入字段的值。但是,它似乎是正确的,但当其中一个值较大时,它不会alert
。
Enter the key:
<input type="text" name="key" size="35" id="q17" autocomplete="off">
<input id="charsLeft" type="text" class="count1" disabled>
<br /><br />
Plaintext:
<input type="text" name="key" size="35" id="q18" autocomplete="off">
<input id="charsLeft2" autocapitalize="off" autocorrect="off" type="text" class="count" disabled>
JavaScript的:
$(document).ready(function() {
// Count key
$("#q17").keyup(function() {
$('#charsLeft').val($(this).val().length);
});
// Count plaintext
$("#q18").keyup(function() {
$('#charsLeft2').val($(this).val().length);
});
// Compare key|plaintext
if ($('#charsLeft').val() < $('#charsLeft2').val()) {
alert('Key is shorter than the plaintext');
}
});
我正在尝试比较两个输入字段(charsLeft
和charsLeft2
)的值。我在这里错过了什么?这是一个小提琴:http://jsfiddle.net/2mgzn4pL/
答案 0 :(得分:6)
你在比较字符串,而不是整数。您可以使用parseInt()
转换它们。试试这个:
if (parseInt($('#charsLeft').val(), 10) < parseInt($('#charsLeft2').val(), 10)) {
alert('Key is shorter than the plaintext');
}
答案 1 :(得分:5)
.val()
返回一个字符串。您应该使用parseInt
或parseFloat
。
答案 2 :(得分:2)
您的代码存在两个问题:
.val()
进行比较而不是字符串长度对于第一个问题,您应该以这种方式比较字符串长度$('#charsLeft').val().length < $('#charsLeft2').val().length
。
对于第二个问题,您应该将比较代码放在按钮的单击事件处理函数或此类事物中。另一种选择是使用第二个输入的focusout
事件,并使用.focusout()
附加事件处理程序。