Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery val()比较_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery val()比较

Javascript jQuery val()比较,javascript,jquery,html,Javascript,Jquery,Html,我试图用jQuery比较两个输入字段的值。但是,它看起来确实正确,但当其中一个值较大时,它不会发出警报 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: <i

我试图用jQuery比较两个输入字段的值。但是,它看起来确实正确,但当其中一个值较大时,它不会发出警报

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');
  }
});
$(文档).ready(函数(){
//计数键
$(“#q17”).keyup(函数(){
$('#charsLeft').val($(this.val().length);
});
//计数明文
$(“#q18”).keyup(函数(){
$('#charsLeft2').val($(this.val().length);
});
//比较键|纯文本
if($('charsLeft').val()<$('charsLeft2').val()){
警报(“密钥比明文短”);
}
});

我试图比较两个输入字段的值(
charsLeft
charsLeft2
)。我错过了什么?这里有一把小提琴:

.val()
返回一个字符串。您应该使用
parseInt
parseFloat
比较字符串,而不是整数。您可以使用
parseInt()
转换它们。试试这个:

if (parseInt($('#charsLeft').val(), 10) < parseInt($('#charsLeft2').val(), 10)) {
    alert('Key is shorter than the plaintext');
}
if(parseInt($('charsLeft').val(),10)

您的代码有两个问题:

  • 您正在将字符串值与
    .val()
    而不是字符串长度进行比较
  • 您的比较代码在页面加载时执行-这意味着只有当页面加载后,您才会看到结果,但在这个事件中,结果为false,并且没有任何警报
  • 对于第一个问题,您应该通过以下方式比较字符串长度:
    $('charsLeft').val().length<$('charsLeft2').val().length


    对于第二个问题,您应该将比较代码放在按钮的click事件处理程序函数中或类似的东西中。另一个选项是使用第二个输入的
    focusout
    事件,并将事件处理程序附加到.p>或
    +$('#charsLeft2').val()
    .True,但请注意
    +
    一元运算符等同于仅为记录使用
    Number()
    ,而不是
    parseInt()
    parseInt
    的第二个参数是基数(即数字的基数)。感谢您的澄清。在你发布答案后,我确实检查了功能。但是,如何在不需要操作(即本例中的单击事件)的情况下运行检查?我最终使用了下面提到的
    .focusout()
    ,但感谢您的建议。只需使用
    +$('#charsLeft').val()<+$('#charsLeft2')。val()
    。focusout()
    是我一直在寻找的。谢谢你提及此事。很高兴能帮助你!:)你可以评估我的答案:)那正是我忘记的。感谢您的时间和回答:)