仅当输入中的值存在时才运行函数

时间:2017-04-05 23:19:22

标签: jquery

我有一个带有输入字段的表单,它返回keyup上的计算输出。问题是我希望字段仅在填充所有输入值时执行该函数。理想情况下,我通过在最后一个输入字段上运行keyup函数然后返回值来完成此操作。

但是,我还希望在编辑或更新任何字段值时立即返回计算结果。

如何仅在填写所有值时调用该函数,还能在编辑值时调用该函数?

这是代码:

$('#3').keyup(function(e) {
  $('.a').val(getRandomNumber());

});

function getRandomNumber() {
  return Math.random();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="texty" id="1" /> <br>
<input type="text" class="texty" id="2" /> <br>
<input type="text" class="texty" id="3" /> <br>
<input type="text" class="a" id="4" />

因此,在上面的示例代码中,我希望仅在填充了类getRandomNumber的所有输入值(即非空)时才调用函数texty。但是一旦所有值都被填充,如果我再次编辑任何字段,我希望再次调用该函数。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

&#13;
&#13;
$('#1').keyup(onkeyup);
$('#2').keyup(onkeyup);
$('#3').keyup(onkeyup);

function onkeyup(ev) {
  if ($('#1').val() && $('#2').val() && $('#3').val()) {
    $('.a').val(getRandomNumber());
  }
}

function getRandomNumber() {
  return Math.random();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="texty" id="1" /> <br>
<input type="text" class="texty" id="2" /> <br>
<input type="text" class="texty" id="3" /> <br>
<input type="text" class="a" id="4" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
$('.texty').keyup(function(e) {
  var getRandom = true;
  $.each($('.texty'),function(key , value){
    (!$(this).val().length)?
      getRandom = false:''
  });
  getRandom?$('.a').val(getRandomNumber()):'';
});

function getRandomNumber() {
  return Math.random();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="texty" id="1" /> <br>
<input type="text" class="texty" id="2" /> <br>
<input type="text" class="texty" id="3" /> <br>
<input type="text" class="a" id="4" />
&#13;
&#13;
&#13;